设计模式应用

用户头像
wei
关注
发布于: 2020 年 06 月 24 日

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

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





public interface Component {

public void print();

public void add(Component component);
}


public class Node implements Component{

private String nodeType;

private String nodeName;

ArrayList<Component> list = new ArrayList<Component>();

public Node(String nodeType,String nodeName){
this.nodeName = nodeName;
this.nodeType = nodeType;
}

@Override
public void add(Component component){
list.add(component);
}

@Override
public void print() {
System.out.println(this.nodeType + "(" + this.nodeName + ")");
for(Component component : list){
component.print();
}
}
}


public class Leaf implements Component {

private String leafType;

private String leafName;

public Leaf(String leafType, String leafName) {
this.leafType = leafType;
this.leafName = leafName;
}

@Override
public void print() {
System.out.println(this.leafType + "(" + this.leafName + ")");
}

@Override
public void add(Component component) {

}
}


public class Test {
public static void main(String[] args) {
Component windowForm = new Node("WinForm","WINDOW窗口");
Component picture = new Leaf("Picture","LOGO图片");
Component button1 = new Leaf("Button","登录");
Component button2 = new Leaf("Button","注册");
Component frame = new Node("Frame","FRAME1");
Component lable1 = new Leaf("Lable","用户名");
Component textBox1 = new Leaf("TextBox","文本框");
Component lable2 = new Leaf("Lable","密码");
Component passwordBox = new Leaf("PasswordBox","密码框");
Component checkBox = new Leaf("CheckBox","复选框");
Component textBox2 = new Leaf("TextBox","记住用户名");
Component linkLable = new Leaf("LinkLable","忘记密码");
frame.add(lable1);
frame.add(textBox1);
frame.add(lable2);
frame.add(passwordBox);
frame.add(checkBox);
frame.add(textBox2);
frame.add(linkLable);
windowForm.add(picture);
windowForm.add(button1);
windowForm.add(button2);
windowForm.add(frame);
windowForm.print();
}
}

> Task :Test.main()
WinForm(WINDOW窗口)
Picture(LOGO图片)
Button(登录)
Button(注册)
Frame(FRAME1)
Lable(用户�?)
TextBox(文本�?)
Lable(密码)
PasswordBox(密码�?)
CheckBox(复�?�框)
TextBox(记住用户�?)
LinkLable(忘记密码)




用户头像

wei

关注

还未添加个人签名 2018.05.31 加入

还未添加个人简介

评论

发布
暂无评论
设计模式应用