策略模式定义一系列算法,分别封装起来,让他们之间可以相互转换,策略模式可以让算法的变化独立于使用算法的客户。
观察者模式定义了对象之间的一对多依赖,这样依赖,当一个对象改变状态时,他的所有依赖都会接受到通知并自动更新。
装饰器模式动态的将责任附加到对象上。若要扩展功能,装饰器提供了比继承更有弹性的替代方案。
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类
抽象工厂提供了一个接口,用于创建相关领域或者依赖对象的家族,而不需要明确指定具体的类
确保一个类只有一个实例,并提供一个全局的访问点