读书笔记----软件设计原则、设计模式
前言
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11833 |
| 这个作业的目标 | 读书笔记 |
书籍详情
- 书籍名称:《Head First设计模式》(中文版)
- 详情:《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式,第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。第1章还介绍了四个○○基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个○○原则。千万不要轻视这些○○原则,因为每个设计模式背后都包含了几个○○原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到○○原则,以方便判断取舍。可以这么说:○○原则是我们的目标,而设计模式是我们的做法。
笔记
- 1.策略模式:策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计原则:- 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码放在一起。
- 针对接口编程,而不是针对实现编程。
- 多用组合,少用继承。
- 2.观察者模式:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
设计原则:- 为了交互对象之间的松耦合设计而努力。
- 3.装饰者模式:利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够用组合的做法扩展对象的行为,就可以在运行时动态地进行扩展。可以利用此技巧把多个新职责,甚至是设计超类时还没想到的职责加在对象上,而且不用修改原来的代码。
设计原则:- 类应该对扩展开放,对修改关闭。
- 4.工厂模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
设计原则:- 要依赖抽象,不要依赖具体类。
- 5.单例模式:确保一个类只有一个实例,并提供一个全局访问点
设计原则:- 无。
- 6.命令模式:将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。
设计原则:- 无。
- 7.适配器模式与外观模式:适配器将一个接口转换成另一个接口,以符合客户的期望。
设计原则:- 最少知识原则:只和你的密友谈话。
- 8.模板方法模式:模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。
设计原则:- 好莱坞原则:别调用我们,我们会调用你。
- 9.迭代器模式与组合模式:迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
设计原则:- 一个类应该只有一个引起变化的原因。
- 10.状态模式:封装基于状态的行为,并将行为委托到当前状态。
设计原则:- 无。
- 11.代理模式:代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。
设计原则:- 无。
- 12.复合模式:复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。
设计原则:- 无。
心得体会
使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性,学习设计模式有助于了解在软件开发过程中所面临的问题的最佳解决方案。
浙公网安备 33010602011771号