第三周作业

发布于: 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 日 阅读数: 11
用户头像

南宫煌

关注

还未添加个人签名 2019.10.08 加入

还未添加个人简介

评论

发布
暂无评论
第三周作业