当以艺术眼光看程序,寻找程序后面的原理,做到化而不忘
全部博文(57)
分类: 架构设计与优化
2015-10-19 23:11:59
12.2 依赖原则
接口的体现形式是多样的,或者说接口的模型是多样的,可以是变量,可以是类型,可以是函数,可以是文件,可以是模块,也可以是层,或者说,接口只是属性,只要有接口属性的存在,都可以叫做接口。
接口原理:接口的最终体现是模型,模型是多样化的。接口模型化,模型具体化,多样化。
接口是抽象化的结果,所以抽象有多个少特点,接口就有相同的特点。
依赖注入是指类一级别,不依赖于具体而依赖于抽象,是组件放弃管理所依赖的类的生命周期以增加内聚度,并让依赖抽象化以减少耦合度。放弃管理所依赖的类的生命周期也就是将所依赖的类抽象化了,比如原来依赖于矩形 ,现在改正为依赖于图形。矩形实现图形接口。
那么,新问题来了:组件所依赖的类的生命周期到底应该谁来管理呢?由谁来管理比较好呢?这是个问题,如果由外部来管理,那就要引入新的设计模式了。
依赖注入是控制反转的一个实现方式。那么还有其它实现方式吗?
12.3 高内聚,低耦合
降低耦合要保持可理解性,可能维护性,可重用性。
降低耦合要使用抽象方法,降低耦合的结果也是得到模型。模型也是多样化的,可能是变量,可能是类型,可能是函数,可能是文件,可能是模块,也可能是层。
降低耦合也就是产生相关模型,也就是模型实现解耦合,也就是耦合分散于模型中,由模型来实现耦合,也就是说,模型负责耦合。耦合形式多样,自然模型也是多样的。
限制使用范围是降低耦合的方式之一,比如提供函数范围,文件范围,模块范围。好像C语言无法提供模块范围。
架构设计的过程是逐步产生模型的过程,没有模型产出的设计是没有意义的。