前言
在开发中,如果一个方法有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应对复杂场景的折中方案。
- 单例模式。
总结
用一个上下文对象包含生命周期的做法,可以将流程处理标准化。减少处理复杂度。
本文提倡在开发中使用上下文设计模式,通过创建一个包含所有请求及返回信息的对象来简化参数管理,提高代码可读性和维护性。上下文对象包括请求、响应、成功标志、异常信息和额外参数,适用于处理复杂场景。通过泛型和Map适应不同需求,采用单例模式,实现请求流程标准化,降低处理复杂度。
513

被折叠的 条评论
为什么被折叠?



