写点什么

架构师训练营第三周作业

用户头像
leo
关注
发布于: 2020 年 11 月 08 日
架构师训练营第三周作业

手写单例模式

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





用组合设计模式编写程序

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



WinForm

package com.leo.homework;
import java.util.LinkedList;
import java.util.List;
public class WinForm extends Component {
private final List<Component> componentList = new LinkedList<>();
public WinForm(String name) {
super(name);
}
@Override
public void print() {
System.out.println(this.getName());
for (Component component : componentList) {
component.print();
}
}
@Override
protected void add(Component component) {
this.componentList.add(component);
}
}

Picture

package com.leo.homework;
public class Picture extends Component {
public Picture(String name) {
super(name);
}
}

Button

package com.leo.homework;
public class Button extends Component {
public Button(String name) {
super(name);
}
}

Frame

package com.leo.homework;
import java.util.LinkedList;
import java.util.List;
public class Frame extends Component {
private final List<Component> componentList = new LinkedList<>();
public Frame(String name) {
super(name);
}
@Override
public void print() {
System.out.println(this.getName());
for (Component component : componentList) {
component.print();
}
}
@Override
protected void add(Component component) {
this.componentList.add(component);
}
}

Label

package com.leo.homework;
public class Label extends Component {
public Label(String name) {
super(name);
}
}

TestBox

package com.leo.homework;
public class TextBox extends Component {
public TextBox(String name) {
super(name);
}
}

PasswordBox

package com.leo.homework;
public class PasswordBox extends TextBox {
public PasswordBox(String name) {
super(name);
}
}

LinkLabel

package com.leo.homework;
public class LinkLabel extends Label {
public LinkLabel(String name) {
super(name);
}
}

Test

package com.leo.homework;
public class Test {
public static void main(String[] args) {
WinForm winForm = new WinForm("WINDOW窗口");
winForm.add(new Picture("LOGO图片"));
winForm.add(new Button("登录"));
winForm.add(new Button("注册"));
Frame frame = new Frame("FRAME1");
winForm.add(frame);
frame.add(new Label("用户名"));
frame.add(new TextBox("文本框"));
frame.add(new Label("密码"));
frame.add(new PasswordBox("文本框"));
frame.add(new Label("记住用户名"));
frame.add(new LinkLabel("忘记密码"));
winForm.print();
}
}



发布于: 2020 年 11 月 08 日阅读数: 28
用户头像

leo

关注

还未添加个人签名 2018.03.23 加入

还未添加个人简介

评论 (2 条评论)

发布
用户头像
作业一似乎不能达成单例对象的目的?
2020 年 11 月 15 日 19:47
回复
查了一下受教了,Java这个语法糖很有意思。。。
2020 年 11 月 15 日 19:54
回复
没有更多了
架构师训练营第三周作业