23种设计模式介绍(Python示例讲解)(33)

2023-04-30 来源:飞速影视
代码解释:
以上代码中,我们首先定义了发起人类 Originator,其中包含一个状态变量 _state,以及用于设置状态、创建备忘录和恢复备忘录的方法。在 create_memento 方法中,我们通过 copy.deepcopy 方法创建了一个状态信息的备忘录对象。在 restore_memento 方法中,我们通过备忘录对象的 get_state 方法获取备忘录中的状态信息,然后将其恢复到当前的状态变量中。在 show_state 方法中,我们打印出当前状态的值。接着,我们定义了备忘录类 Memento,它包含了一个状态信息的属性 _state,以及一个用于获取该属性的方法 get_state。最后,我们定义了管理者类 Caretaker,它包含了一个备忘录列表 _mementos,以及用于添加备忘录和获取备忘录的方法。
7、观察者模式(Observer)
观察者模式(Observer)是一种软件设计模式,它定义了对象之间的一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖它的对象都会收到通知并自动更新。这个模式也被称为发布/订阅模式(Publish/Subscribe),事件模型(Event Model)或消息机制(Message Pattern)。
实现思路:
在观察者模式中,有两种类型的对象:观察者和主题(Subject)。主题是被观察的对象,它维护了一个观察者列表,用于记录所有依赖于它的观察者。当主题状态发生变化时,它会自动通知所有观察者,让它们能够及时更新自己的状态。观察者是依赖于主题的对象,当主题状态发生变化时,它们会收到通知并根据新状态更新自己的状态。
优缺点:
观察者模式的优点是它实现了松耦合(loose coupling)的设计,因为主题和观察者之间没有直接的依赖关系。这使得程序更加灵活,能够更容易地扩展和修改。观察者模式也使得对象能够以可预测的方式进行通信,因为主题和观察者都遵循了同一种接口。同时,观察者模式也可以提高程序的可维护性,因为它将功能分散到了不同的对象中,使得每个对象都具有清晰的职责。观察者模式的缺点是,它可能会导致过多的细节传递,因为主题在通知观察者时必须传递详细信息。这可能会导致性能问题或安全问题,因为观察者可以访问到主题的私有信息。同时,观察者模式也可能导致循环依赖的问题,因为主题和观察者之间可能会相互依赖。
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号