2021/9/26-10/20,阅读《大话设计模式》,笔记如下。

第3、4章

单一职责原则、开放封闭原则。界面应与逻辑分离,对扩展开放,对更改封闭。对程序中频繁变化的那些部分做出抽象。

第5章 依赖倒转原则

抽象不应该依赖细节,细节应该依赖于抽象。即针对接口编程,不要对实现编程。依赖倒转是面向对象设计的标志,程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计。

第6章 装饰模式

看不懂。代码写得很糟糕。变量名取得很随意。

第7章 代理模式

实体和代理都有同样的方法,因此都实现了同样的接口,即继承了同一个抽象类。代理的应用看不懂。

第8章 工厂方法模式

工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。克服了简单工厂违背开放-封闭原则的缺点,又保持了封装对象创建过程的优点。

第9章 原型模式

一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提升。浅复制,被复制的对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。

第10章 模板方法模式

将重复的代码放在抽象类,让子类继承并实现抽象部分,以减少代码的重复。

第11章 迪米特法则

迪米特法则的根本思想是强调了类之间的松耦合。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。

第12章 外观模式

在设计阶段初期,应该有意识的将不同的两个层分离;在开发阶段,增加外观可以提供一个简单的接口,减少子系统之间的依赖;在维护一个大型系统时,为新系统开发一个外观类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的接口。

第13章 建造者模式

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

第14章 观察者模式

当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式。关于委托的部分看不懂。

第15章 抽象工厂模式

看起来很困难。缺乏实际代码的训练。今天在知乎上看了如何学习设计模式?这个问题,发现一个学习网站,并且知道了设计模式一共有23种,其中有一部分是常用的,看来之前每天看一章的计划是有问题的。接下来,要根据模式常用程度,重点突破,搞懂几个常用的模式,不能贪多,要做到详略得当!

第16章 状态模式

结合C++ 状态模式讲解和代码示例看懂了状态模式主要用于有多种状态的判断语句的简化。

更多推荐