第三周作业

发布于: 19 小时前

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

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

import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
public class CompositePattern {
public static void main(String[] args) {
Component frame1 = new Component("Frame","FRAME1");
frame1.addComponent(new Component("Lable","用户名"))
.addComponent(new Component("TextBox","文本框"))
.addComponent(new Component("Lable","密码"))
.addComponent(new Component("PasswordBox","密码框"))
.addComponent(new Component("CheckBox","复选框"))
.addComponent(new Component("TextBox","记住用户名"))
.addComponent(new Component("LinkLable","忘记密码"))
;
Component windowForm = new Component("WinForm", "WINDOW窗口");
windowForm.addComponent(new Component("Picture","LOGO图片"))
.addComponent(new Component("Button","登录"))
.addComponent(new Component("Button","注册"))
.addComponent(frame1)
;
windowForm.print();
}
@Getter
@Setter
static class Component{
private String type;
private String name;
private List<Component> childComponents = new ArrayList<>();
public Component(String type, String name) {
this.type = type;
this.name = name;
}
public Component addComponent(Component component){
this.childComponents.add(component);
return this;
}
public void print(){
System.out.println(this.type+"("+this.name+")");
childComponents.forEach(Component::print);
}
}
}

输出结果:

WinForm(WINDOW窗口)

Picture(LOGO图片)

Button(登录)

Button(注册)

Frame(FRAME1)

Lable(用户名)

TextBox(文本框)

Lable(密码)

PasswordBox(密码框)

CheckBox(复选框)

TextBox(记住用户名)

LinkLable(忘记密码)

3.学习总结

用户头像

田振宇

关注

还未添加个人签名 2018.05.10 加入

还未添加个人简介

评论

发布
暂无评论
第三周作业