…
四、中英文对照
工厂方法模式( Faethod Pattern)
抽象工厂模式(Abstract Factory Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
单例模式(Sion Pattern)
适配器模式( Adapter Pattern)
桥梁模式/桥接模式( Bridge Pattern)
组合模式(posite Pattern)
装饰模式(Decorator Pattern)
门面模式/外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
责任链模式( of Responsibility Pattern)
命令模式(and Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
策略模式(Strategy Pattern)
模板方法模式(Template Method Pattern)
访问者模式(Visitor Pattern)
…
五、设计模式感想
一共有23种设计模式,可以说都是为了提高代码的可读性、可扩展性、可复用性、类的可替换性、组件化、可移植性等等特性。
通过接口、抽象类、继承、实现、委托、抽象、面向接口编程、多态、重载、重写等方式使得代码的这些特性得以彰显,可以说只有深刻的理解了这些概念背后的哲学思想才能更好的理解设计模式。
在设计模式中有很多思想…
比如,可以使用委托的不要使用继承、开闭原则,面向扩展开放,面向修改关闭,里式代换原则,父类一定能被子类代替并使用。
反之则不然,面向接口编程,功能层次和实现层次分离(桥接模式)、高内聚低耦合等思想。
这些思想都是宝贵的,正是因为这样的思想的存在,才使得代码在更新换代的时候,能够尽可能少的,甚至于不用修改之前的代码,就能直接加入新的内容,即可扩展、可维护。
提高软件的开发周期,便于维护和升级,便于查找和纠错,易于扩展和使用。
同样的设计模式主要分为三大类,创建型、行为型、结构型。
我们可以简单的这样分类,只不过这样的分类似乎并不准确,不能一语道出所有的本质,设计模式是相互关联的,有的设计模式内部其实是使用了别的设计模式作为支撑的,但是大体上这样的一种划分便于我们去记忆,仅此而已。
…
六、设计模式回顾
1、从迭代器开始,我们将类中数据结构的遍历和类的功能实现分离出来,本质上使用了工厂模式;
2、适配器模式,它将不同的接口进行适配,从而便于版本的兼容性以及其他功能;
3、模板方法,使用模板面向抽象编程,便于新的子类的实现和管理;
4、工厂模式,其实借用了模板模式来创建产品,是一种非常重要用处很广的一种方法;
5、单例模式,有懒汉式、饿汉式等,生成关于某个类全局唯一的对象,注意多线程的影响;
6、原型模式,用来复制复杂的对象,使用了e方法;
7、Builder建造者模式,用一个新的类对已有的抽象接口进行整合和编程,从而构建出我们想要的东西;
8、抽象工厂模式,使用了工厂模式,组合模式等模式,面向抽象编程,将抽象零件组装成抽象产品,便于具体工厂的创建,提高了代码的组件化和复用性;
9、桥接模式,将类的功能层次和实现层次分割开来,便于对应的扩展和使用;
10、策略模式,可以整体的替换策略,使用也很广泛;
11、组合模式,保证了同根同源,通过委托添加自己构成递归,树形结构,将具有树形特点的对象组合起来;
12、装饰器模式,和组合模式的结构类似,同样是递归结构,从而可以不断的装饰,增加新的功能,很好用;
13、visitor访问者模式,通过在类外访问类中的数据结构从而得到想要的结果,便于程序的可扩展性和组件化;
14、责任链模式,推卸责任,根据问题的大小来考虑自己释放处理,本质是链表,便于职责分明;
15、外观模式,通过整合各个类之间的调用关系,组建成了统一的接口(API),便于外部类的调用;
16、仲裁者模式,将很多类之间互相关联的关系交给仲裁者处理,省去了各个类之间的嵌套和调动,有利于高内聚和低耦合,思路清晰,便于扩展;
17、观察者模式,通过互相委托从而能够在被观察的类发生改变的时候得到相应的改变的信息并且处理;
18、备忘录模式,通过在某一时刻的状态保存下来,便于恢复,在游戏中使用的比较多;
19、状态模式,将状态当做类,从而职责分明,解除了很多繁琐的if和else这些分支逻辑,便于扩展;
20、享元模式,轻量级对象,通过共用不变对象来实现;
21、代理模式,懒加载真正的服务器,加快访问速度,代理是帮助服务器代理的;
22、命令模式,将命令当做类,通过保存一些列命令,从而能够随时执行这些命令,需要清除命令的本质就是一些操作和数据;
23、解释器模式,利用编程原理的方法,来更高层次的封装代码,将自己开发的Java代码当做编译系统,从而不用改变Java代码只修改更高语言层次的代码就能实现不同的功能。
(——·本章完·——)
———【题外话】———
命运的音符,要在我掌心挥动。
理想的代码,得在我手中敲定。
So...
老鸟小哥、小姐姐,推荐票、月票、打赏,好伐?!
本章已完 m.3qdu.com