架构师训练营第三周命题作业
发布于: 2020 年 10 月 04 日
1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
2. 请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
第一题
第二题
public class Client { public static void main(String[] args) { Drawable window = new WinForm("Window窗口"); window.addChild(new Picture("LOGO图片")); window.addChild(new Button("登录")); window.addChild(new Button("注册")); Drawable frame = new Frame("FRAME1"); frame.addChild(new Label("用户名")); frame.addChild(new TextBox("文本框")); frame.addChild(new Label("密码")); frame.addChild(new PasswordBox("密码框")); frame.addChild(new CheckBox("复选框")); frame.addChild(new TextBox("记住用户名")); frame.addChild(new LinkLabel("忘记密码")); window.addChild(frame); window.draw(); }}
public interface Drawable { void draw(); void addChild(Drawable child);}
import java.util.ArrayList;import java.util.List;public abstract class AbsDrawable implements Drawable { protected List<Drawable> children = new ArrayList<Drawable>(); protected String name; public AbsDrawable(String name) { this.name = name; } public void draw() { System.out.printf("print %s(%s)\n", this.getClass().getSimpleName(), name); for (Drawable window : children) { window.draw(); } } public void addChild(Drawable child) { this.children.add(child); }}
public class Button extends AbsDrawable { public Button(String name) { super(name); }}
划线
评论
复制
发布于: 2020 年 10 月 04 日 阅读数: 19
版权声明: 本文为 InfoQ 作者【一马行千里】的原创文章。
原文链接:【http://xie.infoq.cn/article/37848fc8f16bc0e8cf443252b】。文章转载请联系作者。
一马行千里
关注
还未添加个人签名 2018.07.26 加入
还未添加个人简介
评论