整合所有的子系统的接口和功能,并提供高级接口供客户端使用。从原来的需要操作多个子系统的情况,改为只需要面对一个整合后的类的情况。
优点: 将复杂的子系统沟通交给单一的一个类负责,并隔离了客户端与子系统的接触,除了能减少耦合度之外也更安全。
缺点: 将所有子系统集中在Facade接口类中,最终会导致Facade接口类过于庞大而难以维护。
- 确认类只有一个对象,并提供一个全局的方法来获取这个对象。
- 它只能产生一个对象且不能够被继承。
两个重要特性: 唯一的对象和容易获取对象。
优点: 可以马上获取类对象,不必为了“安排对象传递”或“设置引用”而伤脑筋。可以限制对象的产生数量,提供方便获取唯一对象的方法。
缺点: 容易造成设计思考不周和过度的使用问题。
应用: 应用于一些管理类