1.代理模式:
代理模式通过引入一个代理对象来控制对原对象的访问。代理对象在客户端和目标对象之间充当中介,负责将客户端的请求转发给目标对象,同时可以在转发请求前后进行额外的处理。
使用场景:
- 当需要在访问一个对象时进行一些控制或额外处理时。
2.外观模式:
外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
使用场景
- 当客户端不需要了解系统内部的复杂逻辑和组件交互时。
- 当需要为整个系统定义一个清晰的入口点时
以电脑开、关机为例
启动电脑(按电源键):启动CPU、启动内存、启动硬盘
关闭电脑(按电源键):关闭硬盘、关闭内存、关闭CPU
3.中介者模式
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性,属于行为型模式。
中介者模式定义了一个中介对象来封装一系列对象之间的交互。中介者使各对象之间不需要显式地相互引用,从而使其耦合松散,且可以独立地改变它们之间的交互。
使用场景
- 当系统中多个类相互耦合,形成网状结构时。
通过聊天室实例来演示中介者模式。实例中,多个用户可以向聊天室发送消息,聊天室向所有的用户显示消息。我们将创建两个类 ChatRoom 和 User。User 对象使用 ChatRoom 方法来分享他们的消息。
MediatorPatternDemo,我们的演示类使用 User 对象来显示他们之间的通信