谦卑设计模式介绍
“谦卑”在这里是拟人化的,指难以测试的对象清晰地认识到自己的局限性,只发挥自己的桥梁和通信作用,并不从中干预信息的传输。
谦卑对象模式‘最初的设计目的是帮助单元测试的编写者区分容易测试的行为与难以测试的行为,并将它们隔离。其设计思路非常简单,就是将这两类行为拆分成两组模块或类。
- 其中一组模块被称为谦卑(Humble)组,包含了系统中所有难以测试的行为,而这些行为已经被简化到不能再简化了。
- 具体实践中, 复杂行为可以通过函数传入进来
- 另一组模块则包含了所有不属于谦卑对象的行为。
常见场景
谦卑对象设计模式常见于 易测试代码和不易测试代码之间。
- GUI开发里面的 有谦卑对象
- 数据库开发里面 接口层是谦卑对象
分隔难测和容易测的部分
跨边界的通信肯定需要用到某种简单的数据结构,而边界会自然而然地将系统分割成难以测试的部分与容易测试的部分。
所以通过在系统的边界处运用谦卑对象模式,我们可以大幅地提高整个系统的可测试性。
应用场景
MVP 的P层
视图部分属于难以测试的谦卑对象 。
这种对象的代码通常应该越简单越好,它只应负责将数据填充到G U I上,而不应该对数据进行任何处理。
数据库 网关
- mybatis实现
跨服务通信
- 网络层 Http请求 协议层 需要越简单越好。