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

框架(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设计模式:
{ F a c t o r y M e t h o d P a t t e r n , B u i l d e r P a t t e r n B r i d g e P a t t e r n , P r o x y P a t t e r n M e m e n t o P a t t e r n , S t a t e P a t t e r n \left\{ \begin{array}{c} FactoryMethod Pattern, Builder Pattern \\ Bridge Pattern, Proxy Pattern\\ Memento Pattern, State Pattern \end{array}\right. FactoryMethodPattern,BuilderPatternBridgePattern,ProxyPatternMementoPattern,StatePattern
高内聚低耦合
信息隐藏,分离关注点

可维护性指数

在这里插入图片描述

SOILD原则

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值