现在的位置: 首页 > 综合 > 正文

设计模式

2018年02月21日 ⁄ 综合 ⁄ 共 777字 ⁄ 字号 评论关闭

设计原则:

1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;

2.针对接口编程,而不是针对实现编程;

3.多用组合,少用继承;

4.为了交互对象之间的松耦合设计而努力;

5.类应该对扩展开放,对修改关闭;

6.要依赖抽象,不要依赖具体类;

策略模式:

定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

适用场景

  • 几个类的主要逻辑相同,只在部分逻辑的算法和行为上稍有区别的情况。
  • 有几种相似的行为,或者说算法,客户端需要动态地决定使用哪一种,那么可以使用策略模式,将这些算法封装起来供客户端调用。

观察者模式:

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

观察者模式的优点

        观察者与被观察者之间是属于轻度的关联关系,并且是抽象耦合的,这样,对于两者来说都比较容易进行扩展。

        观察者模式是一种常用的触发机制,它形成一条触发链,依次对各个观察者的方法进行处理。但同时,这也算是观察者模式一个缺点,由于是链式触发,当观察者比较多的时候,性能问题是比较令人担忧的。并且,在链式结构中,比较容易出现循环引用的错误,造成系统假死。

如果要设计一个事件触发处理机制的功能,使用观察者模式是一个不错的选择

装饰者模式:

动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案


工厂方法模式:

定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。


抽象工厂模式:

提供一个接口 ,用于创建相关或依赖对象的家族,而不需要明确指定具体类。


单例模式:

确保一个类只有一个实例,并提供一个全局访问点。


命令模式:

将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。



抱歉!评论已关闭.