《设计模式之禅》之六大设计原则中篇
本文主要讲依赖倒置原则和接口隔离原则。 一、依赖倒置原则1.定义
高层模块和低层模块容易理解,每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块,原子逻辑的再组装就是高层模块。 那什么是抽象?什么又是细节呢? 在Java语言中的表现就是:
采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。 注意:设计是否具备稳定性,只要适当地”松松土”,观察”设计的蓝图”是否还可以茁壮地成长就可以得出结论,稳定性较高的设计,在周围环境频繁变化的时候,依然可以做到”我自岿然不动”。 2.依赖的三种写法(1)构造函数传递依赖对象在类中通过构造函数声明依赖对象,按照依赖注入的说法,这种方式叫做构造函数注入。 (2)Setter方法传递依赖对象在抽象中设置etter方法声明依赖关系,依照依赖注入的说法,这是Setter依赖注入。 (3)接口声明依赖对象在接口的方法中声明依赖对象。 3.最佳实践依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合,我们怎么在项目中使用这个规则呢?
二、接口隔离原则1.定义先明确主角-接口,接口分为两种:
那什么是隔离?
先说第一种定义:”客户端不应该依赖它不需要的接口”,那依赖什么?依赖它需要的接口,把不需要的接口剔除掉,那就需要对接口进行细化,保证其纯洁性; 归纳为一句话:建立单一的接口,不要建立臃肿庞大的接口(通俗的讲:接口尽量细化,同时接口中的方法尽量少)。 有人可能会疑惑,这与单一职责原则不是相同吗? 例如一个接口的职责可能包含10个方法,这10个方法都放在一个接口中,并且提供多个模块访问,在系统外通过文档约束”不使用的方法不要访问”,按照单一职责原则是允许的,因为它要求”尽量使用多个专门的接口”。专门的接口指什么?就是指提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。 2.保证接口的纯洁性接口隔离原则是对接口进行规范约束,其包含以下4层含义:
3.最佳实践接口隔离原则是对接口的定义,同时也是对类的定义,接口和类尽量使用原子接口或原子类来组装。但是这个原子该怎么划分是设计模式中的一大难题,在实践中科院根据以下几个规则来衡量?
那么怎么才能正确地使用接口隔离原则呢? 怎么准确地实践接口隔离原则? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ios – 无法将条形按钮项添加到Xcode中的导航控制器
- c – 为什么自动对象的析构函数被调用两次?
- Qt Release版本给出了MSVC运行时库错误
- objective-c – 无法在iOS中隐藏键盘
- .net – RaisePropertyChanged如何发现属性名称?
- ruby-on-rails – 通过Capistrano任务启动具有特定队列的多
- arcgis server 数据注册 “the data item is inaccessible”
- actionscript-3 – 使用URLLoader时出现意外的Flash安全异常
- Flex+BlazeDS+Spring+Hibernate架构整合示例
- React里面的Context应用示例