第三周作业
发布于: 2020 年 10 月 08 日
作业一:
请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
分为饿汉式和懒汉式
作业二:
请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
public interface Component { void draw();}
public class BaseComponent implements Component { protected String name; protected String type; @Override public void draw() { System.out.println("print "+ type + "(" + name + ")"); }}
import java.util.ArrayList;import java.util.List;/** * 容器 */public class Container extends BaseComponent { private List<BaseComponent> components = new ArrayList<BaseComponent>(); public Container(String name, String type) { this.name = name; this.type = type; } public List<BaseComponent> getChild(){ return components; } public void addComponent(BaseComponent component){ components.add(component); } @Override public void draw() { super.draw(); for(BaseComponent component : components){ component.draw(); } }}
/** * 叶子节点 */public class Leaf extends BaseComponent{ public Leaf(String name, String type) { this.name = name; this.type = type; }}
public class PrintWinForm { public static void main(String[] args){ Container winForm = new Container("WINDOW窗口", "WinForm"); winForm.addComponent(new Leaf("LOGO图片", "Picture")); winForm.addComponent(new Leaf("登录", "Button")); winForm.addComponent(new Leaf("注册", "Button")); Container frame = new Container("FRAME1", "Frame"); winForm.addComponent(frame); frame.addComponent(new Leaf("用户名", "Label")); frame.addComponent(new Leaf("文本框", "TextBox")); frame.addComponent(new Leaf("密码", "Label")); frame.addComponent(new Leaf("密码框", "PasswordBox")); frame.addComponent(new Leaf("复选框", "CheckBox")); frame.addComponent(new Leaf("记住用户名", "TextBox")); frame.addComponent(new Leaf("忘记密码", "LinkLabel")); winForm.draw(); }}
最终打印输出结果:
划线
评论
复制
发布于: 2020 年 10 月 08 日阅读数: 34
Geek_ac4080
关注
还未添加个人签名 2019.05.09 加入
还未添加个人简介
评论