装饰器模式

2025年8月18日 | 阅读 3 分钟

装饰器模式表示 "动态地将灵活的附加职责附加到对象"。

换句话说,装饰器模式使用组合而不是继承来在运行时扩展对象的功能。

装饰器模式也被称为包装器

装饰器模式的优势

  • 它提供了比静态继承更大的灵活性。
  • 它增强了对象的可扩展性,因为更改是通过编码新类来实现的。
  • 它通过允许您从目标类开发一系列功能,而不是将所有行为编码到对象中,从而简化了编码。

装饰器模式的用法

它被用于

  • 当您想透明地和动态地向对象添加职责而不影响其他对象时。
  • 当您想向将来可能需要更改的对象添加职责时。
  • 通过子类化扩展功能不再实用时。

装饰器模式的 UML 图

Decorator Design Pattern

步骤 1:创建一个 Food 接口。

步骤 2: 创建一个 VegFood 类,该类将实现 Food 接口并覆盖其所有方法。

文件: VegFood.java

步骤 3:创建一个 FoodDecorator 抽象类,该类将实现 Food 接口并覆盖其所有方法,并且它具有装饰更多食物的能力。

文件: FoodDecorator.java

步骤 4:创建一个 NonVegFood 具体类,该类将扩展 FoodDecorator 类并覆盖其所有方法。

文件: NonVegFood.java

步骤 5:创建一个 ChineeseFood 具体类,该类将扩展 FoodDecorator 类并覆盖其所有方法。

文件: ChineeseFood.java

步骤 6:创建一个 DecoratorPatternCustomer 类,该类将使用 Food 接口来使用客户想要的食物类型(装饰)。

文件: DecoratorPatternCustomer.java

输出

下一主题外观模式