设计模式学习笔记-目录

设计模式金科玉律:复用!
变化是复用的天地,面向对象的设计的最大优势是抵御变化。

0. 面向对象设计原则

1. 组件协作模式

现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用之间的松耦合,是二者之间协作时常用的模式。

2. 单一职责模式

在软件设计中,如果责任划分不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。

3. 对象创建模式

通过对象创建模式绕开new,避免对象创建过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是抽象接口之后的第一步工作。

4. 对象性能模式

面向对象很好地解决了“抽象”的问题,但是必不可免的要付出一定的代价。对于通常情况来讲,面向对象的成本都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。

  • 单例模式 Singleton
  • 享元模式 Flyweight

5. 接口隔离模式

在组件构建构过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接接口,来隔离本来相互紧密关联的接口是一种常见的解决方案。
典型模式:

6. 状态变化模式

在组件构建过程中,某些对象的状态经常面临变化,如何对这些状态的变化进行有效地管理,同时又维护高层模块的稳定?“状态变化”模式为这一问题提供了解决方案。

7. 数据结构模式

常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候将这些特定的数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。

8. 行为变化模式

在组件的构建过程中,组件的行为变化经常导致组件本身剧烈的变化。“行为变化”模式将行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。

  • 命令模式 Command
  • 访问器模式 Visitor

9. 领域规则模式

在特定领域中,某些变化虽然频繁,但是可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则,从而给出该领域下的一般性解决方案。

  • 解析器模式 Interpreter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值