以下是使用依赖倒转原则对该设计方案进行重构的示例代码: ```java interface Pen { void draw(); } // 颜色接口 interface Color { String getColor(); } // 具体颜色类 class RedColor implements Color { @Override public String getColor() { return "Red"; } } class GreenColor implements Color { @Override public String getColor() { return "Green"; } } // 笔大小抽象类 abstract class PenSize implements Pen { protected Color color; public PenSize(Color color) { this.color = color; } abstract void specificDraw(); @Override public void draw() { System.out.println("Drawing with " + color.getColor() + " color and " + getSizeDescription() + " size."); specificDraw(); } public String getSizeDescription() { return "Unknown size"; } } // 小笔 class SmallPen extends PenSize { @Override void specificDraw() { // 小笔的绘制逻辑 System.out.println("Drawing with small pen."); } @Override public String getSizeDescription() { return "Small"; } } // 大笔 class BigPen extends PenSize { @Override void specificDraw() { // 大笔的绘制逻辑 System.out.println("Drawing with big pen."); } @Override public String getSizeDescription() { return "Big"; } } ``` 在上述重构后的代码中,将笔的大小和颜色进行了分离。通过依赖接口,当需要增加新的颜色或新的笔大小时,只需要新增相应的类,而不需要修改已有的代码,提高了系统的扩展性和灵活性。 [2024-09-26 17:16:12 | AI写代码神器 | 433点数解答]