大三打卡(11.13)

[实验任务三]:依赖倒转原则与合成复用原则

在一画图软件中提供了多种大小不同的画笔,并且可以给画笔指定不同的颜色,某设计人员对画笔进行了如上图所示的设计。通过分析,可以发现增加画笔的种类和颜色会使得系统中类的数目急剧增加,请根据合成复用原则和依赖倒转原则对上述设计进行重构。

实验要求:

1.提交源代码;

2.画出重构后的类图。

源代码:

Size类:

public abstract class Size {

    public abstract void sizePen();

}

SmallPen,MiddlePen,BigPen类:

public class SmallPen extends Size{

    public void sizePen() {

        System.out.println("小号");

    }

}

public class MiddlePen extends Size{

    public void sizePen() {

        System.out.println("中号");

    }

}

public class BigPen extends Size{

    public void sizePen() {

        System.out.println("大号");

    }

}

Color类:

public abstract class Color {

    public abstract void colorPen();

}

GreenPen,RedPen类:

public class GreenPen extends Color{

    public void colorPen() {

        System.out.println("绿色");

    }

}

public class RedPen extends Color{

    public void colorPen() {

        System.out.println("红色");

    }

}

Pen类:

public class Pen {

    private Size size;

    private Color color;

    public Size getSize() {

        return size;

    }

    public void setSize(Size size) {

        this.size = size;

    }

    public Color getColor() {

        return color;

    }

    public void setColor(Color color) {

        this.color = color;

    }

}

MainClass类:

public class MianClass {

    public static void main(String[] args) {

        Pen pen=new Pen();

        pen.setSize(new SmallPen());

        pen.setColor(new RedPen());

        pen.setSize(new BigPen());

        pen.setColor(new GreenPen());

    }

}

类图:

 

posted @   夏季彼岸德  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示