读本书感觉,写的很浅显易懂,让自己对设计模式的理解迅速加深,确实名副其实的好书。让你在不经意间理解、加深OO,还有就是设计模式的的优点,在一点一点的净化中,提升,对设计模式的理解,和设计模式的奥秘,并且代码一针见血的写出了设计模式的精髓。但没有写出很完善的设计模式的代码,而是以写出,设计模式的精髓,作为原则,给初学者,很容易的就接受、和理解设计模式。带领读者很快进入设计模式的世界中。
下面将对设计模式的精髓一针见血的写出其核心思想,作为记录笔记;完全脱离书本、看完整本书后一周再写的所有感受,目的加深设计模式精髓记忆。
一、策略模式
1、把各种算法封装在各个类中,但是所有的类都继承了一个相同的接口,该接口负责调用实现,算法输出。当我们需要增加一个算法时,只需在扩展一个实现了该接口的类,然后把该类作为参数传入,然后统一的调用接口,就实现了,传入不同类,实现了相同的调用,去输出对应类的算法;
2、其有3个核心:a:实现相同接口;b:传入不同类封装后的算法;c:统一的接口调用方法,实现不同的类传入,相同的掉线实现不同的输出;
3、目的:实现多种算法策略的封装。
二、适配器模式
1、由于一系列类(1--N个)实现了,某个方法(他们实现了相同的接口,或者是抽象类),但是现在有一个新类,也想要实现那一系列类相同的调用方法。而引入的一个中间类,用于把新类的东西,进一步封装起来,让他和那一系列类看起来相似,达到实现相同的掉用方式;
2、2个核心:a:有2个不同的类,确要以相同的方式调用。b:引入一个中间类,把新类封装起来,形成一个和需要被模仿的类有相似的行为;
3、目的:实现一个类去模仿另一个类的行为。
三、单例模式
1、为实现,某个对象,在程序运行中只产生一个实例,而引入的。也就是为生产系统某些比较固定的东西,也就是说一个实例和多个实例他们都产生相同的输出,所以为控制少实例化,引起的浪费而产生的模式。为防止多线程引起的多个实例,一般加锁;a:锁需要用双层锁;b:引入一个object类型的静态实例化对象,着为辅助对象,用其来着一次外判断(相当于锁,有延迟的效果),在再里面加一个lock锁;c:引入一个静态只读实例变量的形式直接初始,然后判断其对象是否存在;
2、2个核心:a:只能产生一个实例;b:防止并发、多线程引起的意外产生多个实例。
3、目的:系统在任何时刻只生产一个类实例。