架构师训练营第三周作业

发布于: 19 小时前

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

单例模式:一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。

2. 请用组合模式编写一个程序

基类:

package com.architect;
public interface Component {
void print();
}

组合类:

package com.architect;
import java.util.ArrayList;
import java.util.List;
/**
* 项目名: CODE
* 包名: com.architect
* 文件名: Composite
* 创建时间: 2020年06月24日22:38:28
*
* 描述: 组合类
*/
public class Composite implements Component {
private List<Component> children = new ArrayList<>();
private String name;
public Composite(String name) {
this.name = name;
}
@Override
public void print() {
System.out.println("print " + name);
for (Component component : children){
component.print();
}
}
public void addChild(Component component){
children.add(component);
}
public List<Component> getChildren() {
return children;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

Leaf类:

package com.architect;
/**
* 项目名: CODE
* 包名: com.architect
* 文件名: Leaf
* 创建时间: 2020年06月24日22:40:28
*
* @author loikun
* 描述: TODO
*/
public class Leaf implements Component {
private String name;
public Leaf(String name) {
this.name = name;
}
@Override
public void print() {
System.out.println("print " + name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

输出:

package com.architect;
/**
* 项目名: CODE
* 包名: com.architect
* 文件名: Main
* 创建时间: 2020年06月24日22:41:28
*
* @author loikun
* 描述: TODO
*/
public class Main {
public static void main(String[] args) {
Composite winForm = new Composite ("WinForm(WINDOW窗口)");
Leaf logoPicture = new Leaf("Picture(LOGO图片)");
Leaf loginButton = new Leaf("Button(登录)");
Leaf registerButton = new Leaf("Button(注册)");
Composite frame = new Composite ("Frame(FRAME1)");
Leaf userNameLabel = new Leaf("Label(用户名)");
Leaf userNameTextBox = new Leaf("TextBox(文本框)");
Leaf passwordLabel = new Leaf("Label(密码)");
Leaf passwordBox = new Leaf("PasswordBox(密码框)");
Leaf rememberUserNameCheckBox = new Leaf("CheckBox(复选框)");
Leaf remberUserNameLabel = new Leaf("TextBox(记住用户名)");
Leaf forgetPasswordLinkLabel = new Leaf("LinkLabel(忘记密码)");
frame.addChild(userNameLabel);
frame.addChild(userNameTextBox);
frame.addChild(passwordLabel);
frame.addChild(passwordBox);
frame.addChild(rememberUserNameCheckBox);
frame.addChild(remberUserNameLabel);
frame.addChild(forgetPasswordLinkLabel);
winForm.addChild(logoPicture);
winForm.addChild(loginButton);
winForm.addChild(registerButton);
winForm.addChild(frame);
winForm.print();
}
}

截图结果:

用户头像

坂田吴奇隆

关注

还未添加个人签名 2019.01.06 加入

还未添加个人简介

评论

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