设计模式(DP)整理
2018年03月16日
缘起
- 其实一直都写在学设计模式,读研期间虽没选,但也修了设计模式,感觉那时才有点入了门,虽然之前也看了Gof的书,但一直云里雾里。
写在前面的话
- 对于学好面向对象而言,UML的知识是重要的,因为设计模式基于面向对象,所以UML的学习是逃避不了的。可以开始时在纸上画,然后记住各种图标分别代表啥
- 学习设计模式所需注意的问题,弄清以下问题:
- 模式的名称,类型,目的,别名。
- 什么情况下使用该模式?列举该模式的基本示例?
- 模式的UML图?
- 有哪些对象在模式中参与活动?列出使用的对象和类,并说明它们各自的角色。
- 在模式中使用的类和对象之间是如何交互的?
- 应用此模式能获得哪种效果?有什么副作用?
- 如何实现该模式?
- 与该模式相关的模式是什么?异同点是什么?
- 设计模式的关键不在学习模式本身,而是鉴别应用场景和潜在风险,并将设计模式用之有道。
- 设计模式与软件框架的关系?
- 用什么语言去实现设计模式?*个人更建议用
java
或者c#
,那样才专注于学习模式本身,而不是陷入语言特性里。
内容
创造型
- 注重于完成对象的实例化。相对于一般直接实例化对象,设计模式会根据实际情况有选择性地完成对象的实例化。
- 对象创造型模式:完成对象创建,并将对象中部分内容放到其他对象中创建。
- 类创造型模式:完成类实例化,并将类中的部分对象放到子类中创建。
结构型
行为型
参考与收获
参考
- 《设计模式精解及面试攻略》chap1-3入门不错。