观察者模式
观察者模式,又称发布-订阅模式。
常被用来实现事件处理系统。
定义了对象间一对多的依赖关系,一个对象的状态发生变化时,所有依赖于它的对象都将得到通知并自动刷新。被动的观察方式。
观察者和被观察对象之间的互动关系不能体现成类之间的直接调用,否则就将使观察者和被观察对象之间紧密的耦合起来,从根本上违反面向对象的设计的原则。
解释器模式
将一个需要解释执行的语言中的句子表示为一个抽象语法树
执行效率不高
可扩展性强
装饰模式
动态地往一个类中添加新的行为
可以给某个对象而不是整个类添加一些功能,比生成子类更为灵活
修饰模式是类继承的另外一种选择。类继承在编译时候增加行为,而装饰模式是在运行时增加行为。
状态模式
类的行为基于它的状态改变。
当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。
状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可以一致处理。
工厂方法模式
在任何需要生成复杂对象的地方,都可以使用工厂方法模式。
定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。
有时,特定类型对象的控制过程比简单地创建一个对象更复杂。在这种情况下,工厂对象就派上用场了。工厂对象会动态地创建产品对象的类,或者从对象池中返回一个对象,或者对所创建的对象进行复杂的配置,或者应用其他的操作。
在编程中,产品类的实例化有时候是比较复杂和多变的,通过工厂模式,将产品的实例化封装起来,使得调用者根本无需关心产品的实例化过程,只需依赖工厂即可得到自己想要的产品。
策略模式
指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。