设计模式学习了很久,一直有种找不到门路的感觉。直到看了《Java设计模式》,慢慢有种“原来如此”的感受。
之前是直接看GOF的设计模式,大师很厉害,就是不肯收徒。
GOF中对每种设计模式都有意图和适用性,之前学习都是死记这块,但是到了实际应用时,好像还是缺了点什么,就是用不起来。
《Java设计模式》可以说目前看计算机类书籍中本国人写的唯一看的过去(可以说是神作了!),解释了设计原则之上的OO设计原则。于是开始思考“为什么要使用设计模式”,“这种设计模式符合什么设计原则?”,“该设计模式如何实现大师们所说的设计原则‘适用性’”,于是一些大门就开始敞开。
记录一些自己的思考,备忘:
1封装并提供接口:将一块有着特定目的的逻辑封装在一个类中,并将接口提供给需要的client,可以实现client与该逻辑的独立性,实现解耦(抽象工厂)。
2解耦方式:依赖反转原则(抽象耦合),demeter原则(代理模式)
3抽象耦合:实现产品的可配置(通过扩展)性
4结构型设计模式的本质就是复用,因此有继承复用(类)和合成复用(对象)两种:针对现有对象的复用
5行为性设计模式的3种模式
a、将行为封装在一个对象中并将请求指派给它
b、行为对象模式:通过复合建立对象之间的关系,通过封装逻辑实现对象协作。
c、暂不明白:行为类模式使用继承机制在类间分配行为。