架构师训练营 - 第三周命题作业
发布于: 2020 年 06 月 21 日
1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
2. 请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
/** * 抽象构件 **/public abstract class Component { public String getName() { throw new UnsupportedOperationException("不支持获取名称操作"); } public void add(Component component) { throw new UnsupportedOperationException("不支持添加操作"); } public void remove(Component component) { throw new UnsupportedOperationException("不支持删除操作"); } public void print() { throw new UnsupportedOperationException("不支持打印操作"); }}
import java.util.ArrayList;import java.util.List;/** 树枝 * @description: * @author: liu.w * @create: 2020-06-21 23:27 **/public class Frame extends Component { private String name; private List<Component> componentList = new ArrayList<Component>(); public Frame(String name) { this.name = name; } @Override public String getName() { return this.name; } @Override public void add(Component component) { this.componentList.add(component); } @Override public void remove(Component component) { this.componentList.remove(component); } @Override public void print() { System.out.println(this.getName()); for (Component component : this.componentList) { component.print(); } }}
/** 树叶 * @description: * @author: liu.w * @create: 2020-06-21 23:23 **/public class Leaf extends Component { private String name; public Leaf(String name) { this.name = name; } @Override public String getName() { return this.name; } @Override public void print() { System.out.println(this.getName()); }}
/** * 测试类 **/public class Test { public static void main(String[] args) { Frame parent = new Frame("WINDOWS窗口"); parent.add(new Leaf("LOGO图片")); Frame frame = new Frame("FRAME1"); parent.add(frame); frame.add(new Leaf("用户名")); frame.add(new Leaf("文本框")); frame.add(new Leaf("密码")); frame.add(new Leaf("密码框")); frame.add(new Leaf("复选框")); frame.add(new Leaf("记住用户名")); frame.add(new Leaf("忘记密码")); parent.add(new Leaf("登录")); parent.add(new Leaf("注册")); parent.print(); }}
划线
评论
复制
发布于: 2020 年 06 月 21 日阅读数: 55
牛牛
关注
还未添加个人签名 2018.02.27 加入
还未添加个人简介
评论