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";
    }
}

 

posted @ 2024-10-07 11:12  伐木工熊大  阅读(5)  评论(0)    收藏  举报