「架构师训练营」第 3 周作业 - 组合模式
发布于: 2020 年 06 月 25 日
1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业
请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
package com.company;/** * @Author: forest * @CreateTime: 2020-06-24 23:48 * @Description: 窗口 */public interface Form { void addPart(Form form); void display();}
package com.company;import java.util.ArrayList;import java.util.List;/** * @Author: forest * @CreateTime: 2020-06-24 23:49 * @Description: */public class Button implements Form { private List<Form> list = new ArrayList<>(); private String name; public Button(String name){ this.name = name; } @Override public void addPart(Form form) { list.add(form); } @Override public void display() { for (Form f : list) { f.display(); } }}
package com.company;/** * @Author: forest * @CreateTime: 2020-06-25 00:03 * @Description: 点击按钮 */public class ClickButtion implements Form { private String name; public ClickButtion(String name){ this.name = name; } @Override public void addPart(Form form) { } @Override public void display() { System.out.println(name); }}
package com.company;public class Main { public static void main(String[] args) { Button root = new Button("WinForm"); ClickButtion b1 = new ClickButtion("Picture"); ClickButtion b2 = new ClickButtion("Button"); ClickButtion b3 = new ClickButtion("Button"); Button broot = new Button("Frame"); root.addPart(b1); root.addPart(b2); root.addPart(b3); root.addPart(broot); ClickButtion button = new ClickButtion("1"); ClickButtion button1 = new ClickButtion("2"); ClickButtion button2 = new ClickButtion("3"); Button broot3 = new Button("Frame"); broot.addPart(button); broot.addPart(button1); broot.addPart(button2); broot.addPart(broot3); ClickButtion button4 = new ClickButtion("4"); ClickButtion button5 = new ClickButtion("5"); ClickButtion button6 = new ClickButtion("6"); broot3.addPart(button4); broot3.addPart(button5); broot3.addPart(button6); root.display(); }}
划线
评论
复制
发布于: 2020 年 06 月 25 日阅读数: 54
森林
关注
还未添加个人签名 2018.05.07 加入
还未添加个人简介
评论