10.20每日总结

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
型号抽象类:
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());
}
}

  

 

posted @   漏网鲨鱼  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示