前言
在开发中,如果一个方法有3个以上的参数,我们应该将它们包装到一个参数中,原因:
方便调用,参数过多类型容易混淆。
参数个数变更容易替换,无需批量更改方法。
方便设计模式实施及日志记录等。
一个参数的好处很多,于是我们可以思考,一个请求流程中,我们是否可以只用一个参数呢?
我觉得可以,而且是一种很高效的设计模式。
上下文设计模式
我将应用如下请求参数的模式统称为上下文设计模式
public class Context<T, R> {
/**
* request
*/
private T request;
/**
* response
*/
private R response;
/**
* 执行成功标志
*/
private boolean success;
/**
* 失败原因
*/
private Throwable exception;
/**
* 上下文额外附加对象
*/
private Map<String, String> extParams;
}
上下文设计模式具有如下特点:
- 所有的请求及返回都在一个对象中,对象包含了请求过程中用到的所有信息,不同应用层以此对象贯穿整个处理生命周期。
- 返回值一般都是void,通过异常中断执行或在上下文对象中设置success字段。
- 通过对象类型或泛型选择执行方法。
设计技巧
- 范型,方便复用。
- Map应对复杂场景的折中方案。
- 单例模式。
总结
用一个上下文对象包含生命周期的做法,可以将流程处理标准化。减少处理复杂度。
版权声明:本文为u013179884原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。