首页 > 其他 > 详细

00_怎么学习设计模式

时间:2019-11-24 18:30:34      阅读:88      评论:0      收藏:0      [点我收藏+]

00_怎么学习

下面是参考《设计模式》机械工业出版社
模式之间的关联:看书上page8 图1-1

"设计原则" 高于 "设计模式"

"设计模式" 基于 "设计原则"

一、什么是设计模式?4个问题

  1. 模式名称
    方便我们思考和交流。

  2. 动机?
    何时使用该设计模式?

  3. 解决方案是什么?
    设计组成成分,各成分的职责以及协作方式。

  4. 效果怎么样?
    各个模式之间的权衡, 因为并不是一个模式就能完美解决问题,往往是多个模式混用,然后权衡。

二、 重点在哪?

  1. 考虑“设计模式”是怎样解决设计问题的
  2. 模式的“意图” :通常使用分类法
  3. 模式之间怎么“互相关联” ,多看看图1-1(设计模式page8)
  4. 研究目的相似的模式:也就是分类来看
  5. 检查重新设计的原因

三、怎么使用----重构获得模式Refactoring to Patterns

推荐阅读书籍《重构》《重构到设计模式》

  • 不应该先入为主, 一上来就使用设计模式.
  • 没有一步到位的设计模式
  • Refactoring to Patterns, 通过已有的代码进行重构, 从而选择模式
  • 不可以做极端探讨,比如所有代码都在变化, 所有代码都不变化。 没有意义
  • 模式就是要找出,哪些是稳定的,那些是变化的

    四、分类

    按封装变化角度进行分类

分类 模式
组件协作 Template Method Strategy Observer/Event
单一职责 Decorator Bridge
对象创建 Factory Method Abstract Factory Builder
对象性能 Singleton Flyweight
接口隔离 Facade Proxy Mediator Adapter
状态变化 Memento
数据结构 Composite Iterator Chain of Responsibility
行为变化 command Visitor
领域问题 Interpreter

目的 分类

(page 20有各模式简介)

  1. 创建型Creational: 变化对 "创建对象"带来的冲击
  2. 结构型Structural : 变化对 "对象的结构"带来的冲击
  3. 行为型Behavioral : 变化对多个交互的对象带来的冲击

范围 分类

  1. 用于“类” : 编译时确定, 偏静态, 偏继承方案.
  2. 用于“对象”:运行时, 动态, 偏组合方案.

00_怎么学习设计模式

原文:https://www.cnblogs.com/superzou/p/11922824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!