写点什么

第三周作业

用户头像
南宫煌
关注
发布于: 2020 年 06 月 24 日
第三周作业

1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。

使用 DCL 实现的单例。

2. 请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。


代码如下

public abstract class Component {
protected String name;
protected String type;
public Component(String name,String type){ this.name=name; this.type=type; }
public abstract void print();}
复制代码


public class ContainerComponent extends Component{
private List<Component> subNodes=new ArrayList<>();
public ContainerComponent(String name,String type) { super(name,type); }
@Override public void print() { System.out.println("print "+type+"("+name+")"); for(Component component:subNodes){ component.print(); } }
public void addSubNode(Component component){ subNodes.add(component); }}
复制代码


public class BaseComponent extends Component{

public BaseComponent(String name,String type) { super(name,type);
}
@Override public void print() { System.out.println("print "+type+"("+name+")"); }}
复制代码


public class Test {
public static void main(String[] args) { Container w=new Container("WINDOWS窗口","WinForm");
BaseComponent p=new BaseComponent("LOGO图片","Picture"); BaseComponent b1=new BaseComponent("登录","Button"); BaseComponent b2=new BaseComponent("注册","Button"); w.addSubNode(p); w.addSubNode(b1); w.addSubNode(b2); Container f=new Container("FRAME1","Frame"); w.addSubNode(f); BaseComponent l1=new BaseComponent("用户名","Label"); BaseComponent t1=new BaseComponent("文本框","TextBox"); BaseComponent l2=new BaseComponent("密码","Label"); BaseComponent p2=new BaseComponent("密码框","passwordBox"); BaseComponent c=new BaseComponent("复选框","CheckBox"); BaseComponent t2=new BaseComponent("记住用户名","TextBox"); BaseComponent l3=new BaseComponent("忘记密码","LinkLabel"); f.addSubNode(l1); f.addSubNode(t1); f.addSubNode(l2); f.addSubNode(p2); f.addSubNode(c); f.addSubNode(t2); f.addSubNode(l3); w.print(); }}
复制代码


代码更简洁明了。

发布于: 2020 年 06 月 24 日阅读数: 57
用户头像

南宫煌

关注

还未添加个人签名 2019.10.08 加入

还未添加个人简介

评论

发布
暂无评论
第三周作业