结构型模式-外观模式
结构型模式:
外观模式(Facade)
解决子系统复杂性问题
描述
提供了一种简单的接口,用于访问子系统中的一组接口,从而使得客户端能够更加方便地使用该子系统。这种方式可以简化系统的复杂度,同时也能够提高系统的可维护性和可扩展性。
适用环境
当想要为一个复杂的子系统提供一个简单的接口时使用;当需要将客户端代码与复杂的类库分隔开来时使用。
优点:
简化了客户端的调用过程,使得客户端不需要知道具体的实现细节;隐藏了子系统的复杂性,降低了客户端与子系统之间的耦合度。
缺点:
不符合开放-封闭原则,因为在增加新的功能时需要修改外观类内部的实现;如果需要更改子系统的行为,可能需要更改外观类或者子系
统的代码。
违反原则:
单一职责原则:在外观模式中,如果外观类承担了太多的职责,就会违反该原则。
代码实现
图书馆管理系统中有很多不同的类用于实现各种功能,例如新增或删除书籍记录。
虽然这些类在其自身的范畴内是相对独立的,但是仅仅在一个类中实现运行时可能会变得非常复杂难以使用和维护。
可以使用外观模式对其进行重构,定义一个名为LibraryFacade的外观类,该类将封装所有其他