设计模式作业
发布于: 2020 年 06 月 20 日
手写单例模式
组合模式示例
代码主要包含三部分:
第一部分包含接口定义了基本的概念
第二部分包含两个与接口对应的基类,以及它们的具体子类
第三部分是主程序实现构建窗口并打印
public interface IComponent { public void print();}public interface IContainer extends IComponent { public void addComponent(IComponent component);}public class Component implements IComponent{ protected String name; public Component(String name){ this.name = name; } public void print() { System.out.println(this.name); }}import java.util.ArrayList;public class Container extends Component implements IContainer { private ArrayList<IComponent> components = new ArrayList<IComponent>(); public Container(String name) { super(name); } public void addComponent(IComponent component) { components.add(component); } @Override public void print() { super.print(); for (IComponent component : components) { component.print(); } }}public class PasswordBox extends Component { public PasswordBox(String name) { super(name); }}public class Picture extends Component { public Picture(String name) { super(name); }}public class TextBox extends Component { public TextBox(String name) { super(name); }}public class WinForm extends Container { public WinForm(String name) { super(name); }}public class Button extends Component { public Button(String name) { super(name); }}public class CheckBox extends Component { public CheckBox(String name) { super(name); }}public class Frame extends Container { public Frame(String name) { super(name); }}public class Lable extends Component { public Lable(String name) { super(name); }}public class LinkLable extends Component { public LinkLable(String name) { super(name); }}public class Login { public static void main(String[] args) { WinForm winForm = new WinForm("Window窗口"); winForm.addComponent(new Picture("LOGO图片")); Frame frame = new Frame("FRAME1"); frame.addComponent(new Lable("用户名")); frame.addComponent(new TextBox("文本框")); frame.addComponent(new Lable("密码")); frame.addComponent(new PasswordBox("密码框")); frame.addComponent(new CheckBox("复选框")); frame.addComponent(new TextBox("记住用户名")); frame.addComponent(new LinkLable("忘记密码")); winForm.addComponent(frame); winForm.addComponent(new Button("登录")); winForm.addComponent(new Button("注册")); winForm.print(); }}
划线
评论
复制
发布于: 2020 年 06 月 20 日阅读数: 49
版权声明: 本文为 InfoQ 作者【qihuajun】的原创文章。
原文链接:【http://xie.infoq.cn/article/3586e196cb0917baab3769e4f】。文章转载请联系作者。
qihuajun
关注
还未添加个人签名 2009.05.15 加入
还未添加个人简介
评论