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("小"); } }