软件构造笔记4

第四章主要内容是面向可复用编程,以及介绍了几个设计模式

复用有很多种方式,有对代码的复用,对模块的复用,以及对框架的复用等,对框架的复用分为黑盒框架与白盒框架,白盒框架通过继承和动态绑定实现可扩展性。黑盒框架通过为可插入框架的组件定义接口来实现可扩展性并通过定义符合特定接口的组件来复用现有功能。

设计可复用软件

可通过设计可复用类来实现,可复用类要遵循Liskov替换原则,更强的不变量,更弱的前置条件,更强的后置条件。可通过继承实现对类的复用,同时设计一个好的接口会产生更强的作用,类的设计:尽量减少可变性,遵循LSP原则,方法的设计:不要让客户做任何模块可以做的事情,及时报错

适配器模式

适配器模式的作用可以理解为转接口,比如你的插座插不上国际标准的插座,你需要插上一个转接口,然后再用转接口插国际标准插座,适配器模式起到了转化的作用,否则原来的类将无法调用要调用的方法
软件构造笔记4

装饰器模式

装饰器模式是一个相对复杂的设计模式,主要目的是为对象增加不同侧面的特性,我们需要对每一个特性构造子类,通过委派机制增加到对象上。如果不使用装饰器而使用继承来添加类的新特性的话,将会产生很复杂的继承树

外观模式

外观模式是为了解决客户端需要通过一个简化的接口来访问复杂系统内的功能这一问题提出的。主要目的是提供一个统一的接口来取代一系列小接口调用,相当于对复杂系统做了一个封装,简化客户端使用。便于客户端学习,解耦 。

策略模式

策略模式可以理解为为用户提供了多个可选择的策略,优点在于易于扩展新算法实现
软件构造笔记4

模板模式

一般使用继承和重写实现模板模式
软件构造笔记4

迭代器模式

迭代器之前也有介绍,迭代器模式就是用迭代器来访问容器中的所有元素,与容器类型无关
软件构造笔记4