我们一起来读书吧 关注:154贴子:2,816
  • 0回复贴,共1

设计模式 第四章 4.1-4.4

只看楼主收藏回复

4.1-4.4主要介绍适配器、桥接、组合和装饰器:
1)适配器模式:适配器模式将一个类的接口转换成客户端希望的另一个接口。使得原本由于接口不兼容而不能一起工作的类可以一起工作。增强了系统的灵活性和复用性。主要结构如下:
目标接口(Target):定义客户需要的接口。
适配者类(Adaptee):定义一个已经存在的接口,这个接口需要适配。
适配器类(Adapter):实现目标接口,并通过组合或继承的方式调用适配者类中的方法,从而实现目标接口。
2)桥接模式:桥接模式通过将抽象部分与实现部分分离,使得它们可以独立变化,适用于需要在抽象和具体实现之间解耦的场景。主要结构如下:
抽象(Abstraction):定义抽象接口,通常包含对实现接口的引用。
扩展抽象(Refined Abstraction):对抽象的扩展,可以是抽象类的子类或具体实现类。
实现(Implementor):定义实现接口,提供基本操作的接口。
具体实现(Concrete Implementor):实现实现接口的具体类。
3)组合模式:组合模式通过将对象组合成树形结构,使得用户可以一致地对待单个对象和组合对象,适用于需要表示部分-整体层次结构的场景。主要结构如下:
组件(Component):
定义了组合中所有对象的通用接口,可以是抽象类或接口。它声明了用于访问和管理子组件的方法,包括添加、删除、获取子组件等。
叶子节点(Leaf):表示组合中的叶子节点对象,叶子节点没有子节点。它实现了组件接口的方法,但通常不包含子组件。
复合节点(Composite):表示组合中的复合对象,复合节点可以包含子节点,可以是叶子节点,也可以是其他复合节点。它实现了组件接口的方法,包括管理子组件的方法。
客户端(Client):通过组件接口与组合结构进行交互,客户端不需要区分叶子节点和复合节点,可以一致地对待整体和部分。
4)装饰器模式:装饰模式通过动态地给对象添加职责,提供了一种比生成子类更灵活的功能扩展方式,适用于需要动态扩展对象功能的场景。主要结构如下:
抽象组件(Component):定义了原始对象和装饰器对象的公共接口或抽象类,可以是具体组件类的父类或接口。
具体组件(Concrete Component):是被装饰的原始对象,它定义了需要添加新功能的对象。
抽象装饰器(Decorator):继承自抽象组件,它包含了一个抽象组件对象,并定义了与抽象组件相同的接口,同时可以通过组合方式持有其他装饰器对象。
具体装饰器(Concrete Decorator):实现了抽象装饰器的接口,负责向抽象组件添加新的功能。具体装饰器通常会在调用原始对象的方法之前或之后执行自己的操作。


IP属地:北京1楼2024-09-27 16:24回复