如果要编写可长期维护的应用程序,则必须与框架,ORM,HTTP客户端等分离,因为技术在发展,您的业务应用无法永远一直使用它们。
三个简单的规则
要完成框架解耦,您只需遵循以下简单规则:
- 所有服务都应获取其所有依赖项和配置值作为构造函数参数注入。当依赖项使用IO时,您必须为其引入一个抽象。
- 其他类型的对象不应该承担服务责任。
- 上下文信息应始终作为方法参数传递。
- 规则1
有时,依赖项使用IO,即与数据库,文件系统等进行通信。在这种情况下,您应该为依赖项引入一个抽象(如为防止与数据库依赖引入Repository模式:比较DAO与Repository存储库模式)。如果您依赖于具体的类,则该类将仅与当前正在使用的特定库或框架一起使用,因此,为了保持脱钩状态,您应该使用自己的抽象,并结合使用当前库的实现/框架。
- 规则2
- 规则3
规则1、2和3结合在一起,可以确保对于每种方法,它都完全清楚自己在做什么,需要什么数据以及依靠什么服务依赖项来工作。最重要的是,所有依赖项或方法参数都不是框架或库特定的,这意味着您的应用程序代码将有效地与框架分离。