第三周作业
发布于: 2020 年 06 月 23 日
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.学习总结
划线
评论
复制
发布于: 2020 年 06 月 23 日阅读数: 53
田振宇
关注
还未添加个人签名 2018.05.10 加入
还未添加个人简介
评论