9.11
[实验任务三]:依赖倒转原则与合成复用原则
在一画图软件中提供了多种大小不同的画笔,并且可以给画笔指定不同的颜色,某设计人员对画笔进行了如上图所示的设计。通过分析,可以发现增加画笔的种类和颜色会使得系统中类的数目急剧增加,请根据合成复用原则和依赖倒转原则对上述设计进行重构。
实验要求:
1. 提交源代码;
1.Pen.java public abstract class Pen { protected Color color; protected Size size; public Pen(Color color, Size size) { this.color = color; this.size = size; } public abstract void draw(); } 2.Color.java public interface Color { String getColor(); } 3.具体颜色实现 public class Red implements Color { @Override public String getColor() { return "Red"; } } public class Green implements Color { @Override public String getColor() { return "Green"; } } 4.Size.java public interface Size { String getSize(); } 5.具体大小实现 public class Small implements Size { @Override public String getSize() { return "Small"; } } public class Middle implements Size { @Override public String getSize() { return "Middle"; } } public class Big implements Size { @Override public String getSize() { return "Big"; } } 6.具体的 Pen 实现类 public class BrushPen extends Pen { public BrushPen(Color color, Size size) { super(color, size); } @Override public void draw() { System.out.println("Drawing with " + size.getSize() + " " + color.getColor() + " Pen."); } } 7.Main.java public class Main { public static void main(String[] args) { Pen smallRedPen = new BrushPen(new Red(), new Small()); smallRedPen.draw(); // 输出: Drawing with Small Red Pen. Pen bigGreenPen = new BrushPen(new Green(), new Big()); bigGreenPen.draw(); // 输出: Drawing with Big Green Pen. } }
2.画出重构后的类图。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!