1、策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
eg 鸭子
2、观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
eg 气象台
3、装饰对象:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
装饰者和被装饰者具有共同的超类。
eg starbuzz
4、工厂模式
所有工厂模式都用来封装对象的创建。
(1)简单工厂:只是把具体制造不同种类pizza的过程放到工厂里。
(2)工厂方法模式(Factory Method):定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。
eg 不同地方做不同地方特色口味的pizza
创建者Creator:通常包含依赖子抽象产品的代码,而抽象产品由子类制造,创建者不需要真的知道在制造哪种具体产品。
产品类Product
产品类和创建者类平行。
(3)抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
每一个具体工厂都能生产一个产品家族。客户创建产品时,只需要使用某一个具体工厂,而不需实例化任何产品对象。
eg 不同地区有不同的工厂来制造不同的调料(调料包括很多不同种类,也就是产品家族)
5、单件模式:确保一个类只有一个实例,并提供一个全局访问点。
时间: 2024-10-14 07:05:51