《秒懂设计模式》学习笔记(结构篇)
发布网友
发布时间:2024-08-20 17:45
我来回答
共1个回答
热心网友
时间:2024-08-21 21:03
一、门面模式(Facade)
(1)门面模式,也称“外观模式”,其核心在于构建一个整合系统,将多个子系统隐藏在统一的接口之后,为外部访问提供单一入口。该模式简化了系统与外界的交互,实现一键操作,提升用户体验。
(2)在软件开发中,通过门面模式实现多表数据更新时,只需调用一个统一的update()方法,即可完成事务处理和多表更新操作,大大简化了业务逻辑层(Service层)与数据访问层(DAO层)的交互。
(3)门面模式简化了系统内部结构的复杂性,通过封装和整合子系统,对外提供一个简洁的接口,提高系统的可维护性和扩展性。同时,降低客户端与子系统的依赖,实现高内聚低耦合。
(4)门面模式的结构包括:Facade(门面)作为包装类,整合SubSystemA、SubSystemB、SubSystemC(子系统)并提供统一接口;Client(客户端)直接访问门面接口,无需了解内部实现。
二、组合模式(Composite)
(1)组合模式通过层次结构表达部分与整体的关系,以树形结构为模型,实现对节点对象的统一管理。它避免了为每个节点定义不同类,降低了代码冗余。
(2)组合模式通过抽象节点类(接口)泛化所有节点类,实现节点间的多态化和组合关系,支持递归操作,方便客户端遍历和管理整个结构。
(3)组合模式包括:Component(组件接口)、Composite(复合组件)、Leaf(叶端组件)和Client(客户端),通过组件接口定义操作标准,复合组件组合多个组件,叶端组件不包含子组件。
(4)通过组合模式,客户端可以自由部署相关对象,递归操作整个树结构,实现层次化管理。
三、装饰器模式(Decorator)
(1)装饰器模式在运行时动态为对象添加功能,通过包装对象实现功能扩展。它不改变原始对象结构,允许客户端自由选择功能。
(2)装饰器模式通过抽象装饰器和具体装饰器实现功能扩展,客户端根据需求自由组合装饰器,增强原始对象功能。
(3)装饰器模式包括:Component(组件接口)、ConcreteComponent(组件实现)、Decorator(装饰器抽象类)和ConcreteDecorator(装饰器实现),通过装饰器实现对象功能的动态扩展。
四、适配器模式(Adapter)
(1)适配器模式解决接口不兼容问题,通过适配器转换不同接口,实现兼容性,降低组件依赖,提高系统复用性。
(2)适配器模式分为对象适配器和类适配器,分别通过接口引用或继承实现兼容性转换。
(3)适配器模式包括:Target(目标接口)、Adapter(适配器)、Adaptee(被适配者)和Client(客户端),通过适配器实现组件间的兼容访问。
五、享元模式(Flyweight)
(1)享元模式通过共享机制减少对象数量,实现资源高效利用,提高系统性能。
(2)当系统中有大量相似对象时,享元模式通过共享内蕴状态,将外蕴状态独立,降低内存开销。
(3)享元模式包括:Flyweight(享元接口)、ConcreteFlyweight(享元实现)、FlyweightFactory(享元工厂)和Client(客户端),实现对象共享和高效管理。
六、代理模式(Proxy)
(1)代理模式为客户端提供间接访问,通过代理控制和转发请求,实现访问控制或功能扩展。
(2)代理模式与装饰器模式区别在于,代理模式更侧重于访问的控制和隐藏,而装饰器模式更侧重于功能扩展。
(3)代理模式包括:Subject(业务接口)、RealSubject(被代理业务)、Proxy(代理)和Client(客户端),实现业务访问的间接控制。
七、桥接模式(Bridge)
(1)桥接模式将抽象与实现分离,允许二者独立变化,实现功能扩展和组合,提升系统灵活性。
(2)桥接模式通过抽象与实现的组合实现自由扩展,分离形状与颜色,实现组件的自由搭配。
(3)桥接模式包括:Abstraction(抽象方)、AbstractionImpl(抽象方实施)、Implementor(实现方)和ConcreteImplementor(实现方实施),实现抽象与实现的解耦和扩展。