展示者和难测对象模式(Presenters and Humble Objects)
将系统中难以测试的部分取出来,而使得其他逻辑易于测试。
例如说,UI就是难以测试的部分,而展示者(Presenters)则把系统中心的数据转化为UI可以直接用来现实的格式。这样我们就可以通过测试展示者来测试系统的行为。
1 | Application –> Presenter –> ViewModel –> View |
Data Access Object(DAO)
DAO是一个包含所有业务逻辑所需数据读写方法的接口。这个接口将被用例使用,而由数据库的模块implement。
服务Proxy
当你的系统需要使用其他网络服务的时候,最好的方法是创建一个Proxy的类来隔离耦合。这个Proxy的类会将系统提供的数据转化为其他网络服务接受的数据格式。这样我们就可以直接mock这个Proxy的类来进行测试了。
部分隔离
在很多情况下严格执行界限分离的构架非常的昂贵。
- 严格的界限分离需要多写很多代码
- 需要额外的工作去部署
- 你有可能并不需要分离这部分的模块
- 你可以使用部分隔离的方法,按照界限分离的方式开发,但是只放在同一个模块中。
- Strategy Pattern
- Facade Pattern
入口程序模块(The Main Component)
- 入口程序依赖于所有的部分,它知道所有模块的存在。
- 最细节的模块,需要创建所有的工厂类,模块等。
- 为高级系统加载所有内容,然后将控制权交给它。
- 当你把入口程序作为整个构架之外的插件来看待的话,系统配置的问题就会容易解决。