第三周 作业 1
发布于: 2020 年 10 月 01 日
手写单例模式
饿汉单例模式
组合模式编写程序
设计的类图为:
代码:
PrintBehavior,打印行为的接口
public interface PrintBehavior { void print();}
WindowComponent,窗口元素
public class WindowComponent implements PrintBehavior { private String type; private String text; public WindowComponent(String type, String text) { this.type = type; this.text = text; } public void print() { System.out.println("print "+type+"("+ text +")"); }}
WindowContainer,窗口容器,与窗口元素不同,容器中可以包含多个元素
public class WindowContainer extends WindowComponent{ private List<WindowComponent> windowComponentList; public WindowContainer(String type, String text) { super(type, text); this.windowComponentList = new ArrayList<WindowComponent>(); } public void addComponent(WindowComponent component) { this.windowComponentList.add(component); } public void print() { super.print(); for (WindowComponent component:windowComponentList) { component.print(); } }}
Client 程序入口
public class Client { public static void main(String[] args) { WindowContainer window = new WindowContainer("WinForm", "WINDOW窗口"); window.addComponent(new WindowComponent("Picture", "LOGO图片")); window.addComponent(new WindowComponent("Button", "登录")); window.addComponent(new WindowComponent("Button", "注册")); WindowContainer frame = new WindowContainer("Frame", "FRAME1"); frame.addComponent(new WindowComponent("Lable", "用户名")); frame.addComponent(new WindowComponent("TextBox", "文本框")); frame.addComponent(new WindowComponent("Lable", "密码")); frame.addComponent(new WindowComponent("PasswordBox", "密码框")); frame.addComponent(new WindowComponent("CheckBox", "复选框")); frame.addComponent(new WindowComponent("TextBox", "记住用户名")); frame.addComponent(new WindowComponent("LinkLable", "忘记密码")); window.addComponent(frame); window.print(); }}
划线
评论
复制
发布于: 2020 年 10 月 01 日阅读数: 37
版权声明: 本文为 InfoQ 作者【Yangjing】的原创文章。
原文链接:【http://xie.infoq.cn/article/6b5df3e22e0208c86e5237b88】。文章转载请联系作者。
Yangjing
关注
还未添加个人签名 2017.11.09 加入
还未添加个人简介
评论