架构师训练营第三周作业

用户头像
Wee权
关注
发布于: 2020 年 10 月 09 日
  1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。

写了四种:

  • 懒汉模式

  • 饿汉模式

  • 双重校验锁

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

各个组件的定义:

// 主入口类,main()
public class WinForm extends ComponentList implements Component {
public void print() {
System.out.println("print WinForm(WINDOW窗口)");
super.print();
}
public static void main(String[] args) {
ComponentList winForm = new WinForm();
winForm.addComponent(new Picture());
winForm.addComponent(new Button("登录"));
winForm.addComponent(new Button("注册"));
ComponentList componentList = new Frame();
winForm.addComponent(componentList);
componentList.addComponent(new Lable("用户名"));
componentList.addComponent(new TextBox());
componentList.addComponent(new Lable("密码"));
componentList.addComponent(new PasswordBox());
componentList.addComponent(new CheckBox());
componentList.addComponent(new Lable("记住用户名"));
componentList.addComponent(new LinkLable());
winForm.print();
}
}
public class Picture implements Component {
public void print() {
System.out.println("print Pictrue(LOGO图片)");
}
}
public class Button implements Component {
private String content; // 内容
public Button(String content) {
this.content = content;
}
public void print() {
if(content != null){
System.out.println("print Button("+content+")");
}
}
}
public class Frame extends ComponentList implements Component {
public void print() {
System.out.println("print Frame(FRAME1)");
super.print();
}
}
public class Lable implements Component {
private String content; // 内容
public Lable(String content) {
this.content = content;
}
@Override
public void print() {
if(content != null){
System.out.println("print Lable("+content+")");
}
}
}
//定义文本框
public class TextBox implements Component {
public void print() {
System.out.println("print TextBox(文本框)");
}
}
public class PasswordBox implements Component {
public void print() {
System.out.println("print PasswordBox(密码框)");
}
}
public class CheckBox implements Component {
public void print() {
System.out.println("print CheckBox(复选框)");
}
}
//定义链接
public class LinkLable implements Component {
public void print() {
System.out.println("print LinkLable(忘记密码)");
}
}
public abstract class ComponentList implements Component{
protected List<Component> components = new ArrayList<Component>();
public void addComponent(Component component) {
components.add(component);
}
public void print(){
for(Component component : components){
component.print();
}
}
}



发布于: 2020 年 10 月 09 日 阅读数: 12
用户头像

Wee权

关注

还未添加个人签名 2018.02.07 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第三周作业