有这两种模式:观察者和装饰者。两者都使我能够在完成某事之后(或装饰器之前)添加一个动作。但它们的实现方式不同。所以我什么时候应该使用装饰器或观察器。
到目前为止,我想出了这个:
decorator :向服务添加业务功能,这将改变被装饰服务使用的实体的状态。
观察者:更新视图模型/ gui,连接基础设施服务,改变其他实体的状态
例如,在预订级别,我有一个预订实体,第一个服务将创建预订并将住宿标记为不可用:
- 向客户/所有者发送电子邮件:观察者
- 使用客户 cc 自动付款:装饰器
- 使用住宿可用性更新视图/缓存:观察者
- 将预订标记为“必须验证或验证”:decorator
我对吗 ?