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()); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix