读阎宏<<java与模式>>感知
模式化过程是把问题抽象化,在忽略细节以后,发现问题的一般性本质,并找到普遍适用的解决方案过程。而这个解决方案便是各式各样的设计模式。
由来:
在开发的过程中不断的发现问题和寻找问题的解决方案的时候,发现一些问题及解决方案不断变换面孔重复出现,而这些不同的面孔又有相同的本质。
通用:
模式锁描述的问题及问题的答案都应当是具有代表性的。
作用:
1.解决问题,比如
单例能够解决全局变量的问题。
责任链方法给每个对象一次调用处理的机会。
2.使代码结构更漂亮,更合理。
状态模式能够避免大量的if else,switch判断,而状态模式能够把重心放到状态本身上。
门面模式能够封装模块内部的细节,简化调用者的调用复杂度,降低耦合,减少了变化引起的影响。
模板模式使函数上移,放到继承关系更合适的位置。
3.方便沟通:
程序员在遇到一个问题的使用,用大量的话语说明怎样去做,怎样解决一个问题,如果是模式,说模式的名字更能快速沟通。
4.指出了问题
毫无疑问,很多模式都有一些比较特定的使用场景,而我们通过学习设计模式,即便暂时没有用到,却给我们知晓了一些潜在的问题。诸如,
调停者让我们知道了避免了太多的耦合调用。
单例模式让我们知道某些场景,不应该有两个实例。
享元模式使我们对于引起了对大量粒度的访问,内存及设备运算能力的重视。