9.30

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

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

 

实验要求:

1. 提交源代码;

型号抽象类:

public abstract class Size {public abstract void sizePen();

}

具体型号类:

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("大型");

}

}

颜色抽象类:

public abstract class Color {public abstract void colorPen();

}

具体颜色类:

public class GreenPen extends Color{public void colorPen() {

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

}

}

public class RedPen extends Color{

public void colorPen() {

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

}

}

钢笔:

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;

}

}

聚合钢笔:

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());

}

}

2.画出重构后的类图。

 

 

posted @     阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
历史上的今天:
2023-09-30 java动手动脑
点击右上角即可分享
微信分享提示