设计模式理解 所有设计模式的实现都要遵循一个原则:即“找出程序中变化的地方,并将变化封闭起来”一个程序的设计总是可以分为可变的部分和不变的部分。当我们找出可变的部分,并且把这些部分封装起来,那么剩下
设计模式理解
所有设计模式的实现都要遵循一个原则:即“找出程序中变化的地方,并将变化封闭起来”一个程序的设计总是可以分为可变的部分和不变的部分。当我们找出可变的部分,并且把这些部分封装起来,那么剩下的就是不变和稳定的部分。这些不变和稳定的部分是非常容易利用的。这也是设计模式为什么描写的是可复用面向对象软件基础的原因。
设计模式被人误解的一个重要原因是人们对它的误用和滥用,比如将一些模式用在了错误场景中,或者说在不该使用模式的地方刻意使用模式。别整成“你有把锤子,你就看见什么都当成钉子”
分辨模式的关键是意图而不结构
在设计模式学习中,有人经常发现这样的疑问:代理模式和装饰者模式,策略模式和状态模式,策略模式和智能命令模式,这些模式的类图看起来几乎一模一样,它们到底有什么区别?实际上这种情况是普高存在的,许多模式的类图看起来都差不多,模式只有放在具体的环境下才有意义。比如我们的手机,把它当电话时候,它就是电话;把它当闹钟的时候,它就是闹钟;用它玩游戏的时候,它就是游戏机。
把不变的隔离开来,把可变的封装起来
每个模式都没有固定的格式,其实就是一种思想,你用各种方式来表达这种思想。正所谓条条大路通罗马