以下是基于合成复用原则对该设计方案进行的重构: 首先,创建一个 `Pen` 基类,包含画笔的基本属性和方法。 然后,分别创建 `Size` 类(表示笔的大小)和 `Color` 类(表示笔的颜色)。 `Pen` 类中持有 `Size` 对象和 `Color` 对象的引用,而不是通过继承来实现不同大小和颜色的组合。 这样,当需要增加新的大小或新的颜色时,只需要创建新的 `Size` 类的实例或 `Color` 类的实例,并在 `Pen` 类中进行组合使用,而不需要为每种组合创建新的子类,大大提高了系统的灵活性和可扩展性。 以下是可能的示例代码(使用 Java 语言): ```java class Pen { private Size size; private Color color; // 构造函数、getter 和 setter 方法 public void draw() { // 绘制逻辑,使用 size 和 color 的属性 } } class Size { // 大小相关的属性和方法 } class Color { // 颜色相关的属性和方法 } ``` 这样,当要增加新的大小或新的颜色时,只需创建新的 `Size` 或 `Color` 类的对象,并在 `Pen` 类中进行设置和使用,避免了大量子类的创建。 [2024-09-26 17:42:07 | AI写代码神器 | 319点数解答]