架构师训练营 4 期 第 3 周
架构师训练营 4 期 第 3 周
作业一:课后练习
请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
作业二:根据当周学习情况,完成一篇学习总结、
什么是设计模式
设计模式是一种可重复使用的解决方法
每一种模式都描述了一种问题的通用解决方案。这种问题在我们的环境中,不停地出现
—个设计模式的四个部分:
模式名称(Pattern Name):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。
设计模式的划分
根据功能来分
创建模式(Creational Patterns) 对类的实例化过程的抽象。创建和使用的分离。
结构模式(Structural Patterns) 将类或者对象结合在一起形成更大的结构。
行为模式(Behavioral Patterns) 对在不同的对象之间划分责任和算法的抽象化。
根据方式来分
类模式 以继承的方式实现模式/静态的。
对象模式 以组合的方式实现模式,动态的。
设计模式与设计原则之间的关系
软件如果要实现可维护、可扩展,就必须尽量复用代码,并且降低代码的耦合度,而在面向对象设计原则中有以下原则:
SRP Single Responsibility Principle:单一职责原则
OCP Open Closed Principle:开闭原则
LSP Liskov Substitution Principle:里氏替换原则
ISP Interface Segregation Principle:接口隔离原则
DIP Dependence Inversion Principle:依赖倒置原则
而设计模式就是基于这些原则对于解决特定问题方法的提炼,在学习设计模式的时候需要辨证的看待问题, 设计模式可能遵循某些设计原则,也可能破坏某些设计原则,比如简单工厂模式,可能对客户端满足开闭原则,但是对于工厂方法可能不满足,所以在实际需要的时候需要对其进行一些改造,比如通过配置文件等方式。
版权声明: 本文为 InfoQ 作者【引花眠】的原创文章。
原文链接:【http://xie.infoq.cn/article/6bd1a3efcfb23785b4280378a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论