• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
多莱特~梦未醒,再出发

行路难,行路难,多歧路,今安在。

长风破浪会有时,直挂云帆济沧海。

博客园    首页    新随笔       管理     

设计模式使用手册

名称

定义

变化点

我的实践总结

策略模式

定义了算法族,分别封装起来,让它们之间可以互换,让算法的变化独立于使用算法的客户。

算法,行为变化

  

观察者模式

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态是,它所有的依赖者都会接收到通知并自动更新。

消息接收者变化

  可以很好的解耦接收者和观察者,不必过多的考虑都有哪些部分要被通知到,即解耦了,也可以让sender,的代码更加内聚,不必增加多余的职责。

装饰者模式

动态的将职责附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

注意变化点,需要动态的为对象附加职责。职责,行为变化

  

工厂方法模式

定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类吧实例化推迟到子类。

需要创建的类型变化。

  

抽象工厂模式

提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。

类型族变化。

  

单件模式

确保一个类只有一个实例,并提供一个全局访问点。

类的数量变化

  

命令模式

将"请求"封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。

动作的执行者是变化点。

  

适配器模式

将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作的不间。

变化点是客户接口和被适配接口的不一致,且这个不一致是变化点。

  

外观模式

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

使客户和复杂多变的子系统解耦

  

模板方法模式

在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

变化的是算法结构中的部分步骤。

需要注意的是,模板方法有很多中变体,而且实现的时候,如果是必须由子类实现的,那么实现为抽象类,如果是可由子类选择实现的,那么实现为钩子,给出基本的实现,子类可以覆盖。

组合模式

允许你将对象组合成树形结构来表现"整体/部分"层次结构,组合能让客户以一致的方式处理个别对象以及对象组合。

变化的主体是个别对象,或者是对象组合。无论涉及到多少个对象,处理的方式都是一样的。

  

状态模式

允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

变化的主体是对象的行为,这样的一组行为,和对象的状态对应。

  

装饰者 : 扩展包装的对象。

适配器: 行为的转换。

外观模式:简化接口

好莱坞原则:别调用我们,我们会调用你。

依赖倒置原则:要依赖抽象,不要依赖具体类。

image

这里要说明的是,由于高层需要调用底层的组件,而高层并不知道底层什么时候会发生改变,为了让系统更具灵活性,高层依赖于抽象。

而具体类也依赖于抽象,实现高层和底层的依赖分离。所谓的倒置就是高层依赖底层,倒置为,高层,底层依赖于抽象。

 

state machine      VS      strategy  partern

strategy : 行为的变化

state machine : 对象本身状态的变化,并且影响行为的表现。

posted @ 2009-10-17 12:14  Young跑跑  阅读(166)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3