- 观察者模式:定义对象间的一对多依赖,当一个对象状态改变时,所有依赖它的对象都会收到通知并自动更新
观察者获得更新状态的方式有“推( push )”和“拉 pull ”两种方式,前者认为更合理,因为可以一次性给到观察者需要的数据;而后者对观察者更自由,可以决定什么时候去拿,拿什么样的数据,前提是主题需要定义一些列 getter 方法。注意,程序不能依赖观察者被通知的顺序
- 装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案
装饰者反映出被装饰的组件类型,因为它们具有相同的接口。该模式可以通过组合和委托在运行时动态地加上新的行为 - 工厂方法模式:定义 一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化延迟到子类
封装变化并提炼到一处维护,提供针对接口编程的一个框架
- 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类
抽象工厂和工厂方法的区别是前者使用组合而后者使用继承
理解设计模式(一)
最新推荐文章于 2024-09-17 22:21:07 发布