您的位置:首页 > 其它

设计模式心得

2016-02-12 23:49 218 查看
1.继承是系统进化的主要手段,设计模式根据讨论方向分为三种,其一,讨论对象与场景的关系,以改善继承,以利于系统进。其二,讨论类的组合,其三,讨论类树的管理。最终目的是为进化中的系统提供代码结构优化的种种便利。

2. 工厂方法,原型,单例实际上是讨论对象与场景的关系。工厂方法实现了类与场景的代码级别的隔离,方便类的独立进化。原型分离了对象的初始化与对象的使用,为两个不同应用场景的交互提供便利,单例实际上从资源的角度限制场景对对象的使用次数。

解释器也是对象与场景的关系,工厂方法生产对象,解释器生产行为,类似于某种配置化,脚本化,为系统提供最到灵活性。 3. 建造者,桥接,组合,外观,享元,责任链,命令,迭代器,中介者,备忘录,观察者,状态,策略,访问者都是在讨论组合。

首先,程序里有数据和方法,或者有一个大类里,有很多方法和数据,一回事。这些东西要根据规则拆分成小类,才能利用实现模块化管理和进化。

其一,根据规模或进化速度拆分,进化速度不同的原有类的组成部分,分出无继承关系若干类,组合起来共同完成某功能。

比如,建造者,属于构造函数体量比较大,策略模式,属于部分方法有更多的变化,享元,干脆是把固定的部分和可变的部分分离开,节省资源。访问者,属于把变化较多的部分提取出来独立进化。

其二, 根据功能进行拆分,达到一些特殊的设计需求,或实现单一职责。当然,分离出来的职责方发育的比较大,职责比较多,也是重要指标。

观察者,观察者与被观察者之间有着不同的需求走向,状态模式,封装状态相关的方法,省略分支语句。命令模式,封装方法的调用。迭代器模式,封装类的数据访问。备忘录模式,封装类的整体context,提供恢复支持。
其三,拆分后会有关系问题。

桥接,直接调用,组合,方便管理,责任链,实现处理流程管线化。中介者模式,使类的关系松耦合。外观模式,把调用方的操作集成化。

4.继承树相关

模板方法,定义框架,子类实现功能。

代理模式,由代理决定使用哪个子类。

装饰器模式,通过继承在调用前后增加一些操作。

适配器实际上是一种广义的继承,应在是场景调用时配合使用的。

前述所有对象 类都可以替换为程序,程序集,进程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: