软件构造笔记5
本章主要面向软件构造的可维护性
面向对象设计有五个基本原则:
- 单一责任原则:即每个类的责任应该是单一的,不应有多于1个的原因使得一个类发生变化,如果有应该分开
- 开放-封闭原则:程序应该是对扩展开放的,对修改是封闭的,使用接口可以帮助实现
- Liskov替换原则:这个前面有提到过,不再赘述
- 依赖转置原则:高级模块不应该依赖于低级模块。 两者都应该取决于抽象,抽象类不应该依赖于具体类
- 接口聚合原则:客户端不应依赖于它们不需要的方法
创造性模式
-
工厂模式:在创建类的时候,使用工厂方法模式可以很方便,并且利用多态可以让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类
-
抽象工厂模式:实际上是工厂方法的一个组合,当一个工厂不止生产一样产品(类)时可以用到这种方法
-
构造器模式:用于创建复杂对象,包含多个组成部分时
结构化模式
-
桥接模式:桥接模式通过delegation+inheritance 建立两个具体类之间的关系
-
代理模式:当某个操作代价比较昂贵时,可以使用代理模式调用一个其他类使用方法,其实就是建立了一道防火墙
-
组合模式:组合模式目的是将对象组成树结构来表示整体部分的层次结构
行为模式
- 观察者模式:这个模式老师给的例子很形象,偶像与粉丝之间,粉丝要关注偶像的动态,当偶像更新状态时会通知粉丝,调用粉丝的更新方法,向粉丝广播自己的方法,而粉丝不能调用这个方法
- 访问者模式:对特定类型的object的特定操作(visit),在运行时将二者动态绑定到一起,该操作可以灵活更改,无需更改被visit的类