我将通过几个生动形象的例子来说明几种设计模式的区别
adaptor模式:我有一个充电器,是typec的,但是我的手机是iphone4s不支持typec,所以我需要一个转接线这个线就是adaptor模式的适配器,用适配器将我们的输入和目标库的输入对接在一起,从而使用目标库的功能
strategy模式:同一种方法,有多种实现方式,这种时候可以将该方法下发到多个子类去完成。
template模式:在抽象类构建一个模板,分别用不同的子类实现每一个类的功能。比如一个工厂,现在要制造一个手机。需要屏幕、芯片、主板等等。这样可以构造一个类来代表这个工厂,然后屏幕芯片主板等由具体的子类分别完成。
visitor模式:visitor相当于外包。比如我要做一个手机,芯片让台积电做,屏幕让京东方提供,我把自己的设计图纸公开给他们,也就是提供我的内部成员变量(accept),然后让他们给我们做出来。
factory模式:提供一个专门的工厂类用于构造对象,将复杂的继承构造结构扁平化。只要找到相应的工厂类,用同一个方法gettrace就能够生成对应的对象。