软件架构与模式读书笔记
第3章 软件设计的模式
1.综合练习
- a. 解释架构模式、设计模式和惯用法关系。
- b. 架构模式和设计模式必须是面向对象的吗?
2.设计模式
- a. 设计模式的目标是什么?
- b. 设计模式是如何形成的?
- c. 什么是微架构?
- d. 包含很多设计模式的架构就是好架构吗?
Answer:
三者的抽象程度依次降低。架构关注的是系统的架构,设计模式通常是在子系统中解决特定的问题,设计模式在原则上不会影响到系统的架构。设计模式被当做是经过验证的设计原则,适用于小型的子系统,也叫微架构。惯用法是在特定程序语言中的模式,例如编写出的设计模式。
模式不一定都是面向对象的。这样的模式不需要继承和多态。面向对象的设计模式满足以下设计原则:
- 松耦合性系统:组件松耦合性。
- 抽象:通过泛化、接口或者抽象类。
- 信息隐藏:通过隐藏程序实现的部分。
- 明确的职责:通过角色安排。
- 依赖倒置原则:高层类不依赖于底层的类。
软件设计中模式的主要目标是通过再次使用已经获得的经验提高架构的灵活性。
设计模式和架构模式是经过验证的模式,它们是在系统设计中已经取得的经验。它们已经在很多系统中得到验证,可以作为解决一些问题的备选方案。它们是由人工编写出来的,可以作为“蓝图”供使用。它们提供了良好的开发工具和必要的方法定义。
设计模式又称微架构。
使用设计模式增加系统可扩展性的同时可能会降低系统的性能并增加系统复杂度。系统设计应“只保持必要的灵活性,越少越好”。