2024/10/7
软件设计实验一
[实验任务三]:依赖倒转原则与合成复用原则 在一画图软件中提供了多种大小不同的画笔,并且可以给画笔指定不同的颜色,某设计人员对画笔进行了如上图所示的设计。通过分析,可以发现增加画笔的种类和颜色会使得系统中类的数目急剧增加,请根据合成复用原则和依赖倒转原则对上述设计进行重构。 实验要求: 1. 提交源代码; Pen: public abstract class Pen { protected Size size; protected Color color; public Pen(Color color, Size size) { this.color = color; this.size = size; } public abstract void draw(); } CustomPen: public class CustomPen extends Pen{ public CustomPen(Color color, Size size) { super(color,size); } @Override public void draw() { System.out.println("颜色为:" + color.getColorName() + ",画笔尺寸为:" + size.getSizeName()); } } Color: public abstract class Color { public abstract String getColorName(); } GreenPen: public class GreenPen extends Color { @Override public String getColorName() { return "Green"; } } RedPen: public class RedPen extends Color { @Override public String getColorName() { return "Red"; } } Size: public abstract class Size { public abstract String getSizeName(); } BigPen: public class BigPen extends Size { @Override public String getSizeName() { return "Big"; } } MediumPen: public class MediumPen extends Size { @Override public String getSizeName() { return "Medium"; } } SmallPen: public class SmallPen extends Size { @Override public String getSizeName() { return "Small"; } }