软件构造知识点复习:面复用的软件构造技术(下)+设计模式+可维护性的度量与构造原则

框架(Framework)的复用

框架的复用:浏览器→写插件
{\left\{ \begin{array}{c} 白盒框架:通过继承来扩展 \\ 黑盒框架:通过委派来扩展\end{array}\right.
软件构造知识点复习:面复用的软件构造技术(下)+设计模式+可维护性的度量与构造原则

面向复用的设计模式

  1. Adapter(适配器模式):当新的客户端的输入或输出要求与老的方法不一致时,新建一个适配器,改变参数的样式,再委派给老的方法
  2. Decorator(装饰器模式):将某些功能通过委派的方式委派给同一个接口下的其他实现类 软件构造知识点复习:面复用的软件构造技术(下)+设计模式+可维护性的度量与构造原则注:最后一行代码一共有4个Stack
  3. Facade(外观模式):当执行有固定逻辑顺序的几个方法是,通过外观模式一次性按固定的逻辑顺序调用这些方法(也可以一次性调用不同的ADT的方法)
  4. Strategy(策略模式):通过委派传入不同的ADT来以不同的实现方法完成目的
  5. Template method(模板模式):继承与重写→白盒框架
    父类 a = new 子类()
  6. Iterator(迭代器模式):JAVA已写好

软件构造知识点复习:面复用的软件构造技术(下)+设计模式+可维护性的度量与构造原则

可维护性的度量与构造原则

维护:纠错性、适应性、完善性、预防性
目标:easy to change(Maintainability可维护性、Extensibility可扩展性、Flexibility灵活性、Adaptability可适应性、Manageability可管理性、Supportability支持性)
OO设计原则:SOLID、GRASP
OO设计模式:
{FactoryMethodPattern,BuilderPatternBridgePattern,ProxyPatternMementoPattern,StatePattern\left\{ \begin{array}{c} FactoryMethod Pattern, Builder Pattern \\ Bridge Pattern, Proxy Pattern\\ Memento Pattern, State Pattern \end{array}\right.
高内聚低耦合
信息隐藏,分离关注点

可维护性指数

软件构造知识点复习:面复用的软件构造技术(下)+设计模式+可维护性的度量与构造原则

SOILD原则

{SRP()1OCP()LSP(Liskov)DIP()ISP()()\left\{ \begin{array}{c} SRP原则(单一责任原则): 一个方法只实现一个功能,不是多于一个1个的原因改代码\\ OCP原则(开放-封闭原则): 模块可扩展,在比改变内部的情况下扩展\\ LSP原则(Liskov替换原则):子类型可以无条件的替换父类型\\ DIP原则(依赖转置原则):一个类依赖于抽象类而不是具体的类\\ ISP原则(接口聚合原则): 将大的接口拆分成小的接口(类从实现一个变成实现多个)\end{array}\right.