2023/9/20 每日总结

今天完成了软件设计实验一的第三部分

实验1:UML与面向对象程序设计原则

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、掌握面向对象程序设计中类与类之间的关系以及对应的UML类图;

2、理解面向对象程序设计原则

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

 

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

类图

 

源码

BigPen.java

package org.hecheng;

public class BigPen extends Size{
    public void penSize(){
        System.out.println("大");
    }
}

Color.java

package org.hecheng;

public abstract class Color {
    public abstract void penColor();
}

GreenPen.java

package org.hecheng;

public class GreenPen extends Color{
    public void penColor(){
        System.out.println("绿色");
    }
}

Main.java

package org.hecheng;

public class Main {
    public static void main(String[] args) {
        Pen pen=new Pen();
//组合中型红色钢笔
        pen.setSize(new MiddlePen());
        pen.setColor(new RedPen());
        pen.getColor().penColor();
        pen.getSize().penSize();
//组合小型绿色钢笔
        pen.setSize(new SmallPen());
        pen.setColor(new GreenPen());
        pen.getColor().penColor();
        pen.getSize().penSize();
    }
}

MiddelePen.java

package org.hecheng;

public class MiddlePen extends Size{
    public void penSize(){
        System.out.println("中");
    }
}

Pen.java

package org.hecheng;

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

}

RedPen.java

package org.hecheng;

public class RedPen extends Color{
    public void penColor(){
        System.out.println("红色");
    }
}

Size.java

package org.hecheng;

public abstract class Size {
    public abstract void penSize();
}

SmallPen.java

package org.hecheng;

public class SmallPen extends Size{
    public void penSize(){
        System.out.println("小");
    }
}

  

 

posted @ 2023-09-20 22:16  樱花开到我身边  阅读(13)  评论(0)    收藏  举报