写点什么

第三周 作业 1

用户头像
Yangjing
关注
发布于: 2020 年 10 月 01 日
第三周 作业1

手写单例模式

饿汉单例模式



组合模式编写程序

设计的类图为:

代码:

PrintBehavior,打印行为的接口

public interface PrintBehavior {
void print();
}

WindowComponent,窗口元素

public class WindowComponent implements PrintBehavior {
private String type;
private String text;
public WindowComponent(String type, String text) {
this.type = type;
this.text = text;
}
public void print() {
System.out.println("print "+type+"("+ text +")");
}
}

WindowContainer,窗口容器,与窗口元素不同,容器中可以包含多个元素

public class WindowContainer extends WindowComponent{
private List<WindowComponent> windowComponentList;
public WindowContainer(String type, String text) {
super(type, text);
this.windowComponentList = new ArrayList<WindowComponent>();
}
public void addComponent(WindowComponent component) {
this.windowComponentList.add(component);
}
public void print() {
super.print();
for (WindowComponent component:windowComponentList) {
component.print();
}
}
}

Client 程序入口

public class Client {
public static void main(String[] args) {
WindowContainer window = new WindowContainer("WinForm", "WINDOW窗口");
window.addComponent(new WindowComponent("Picture", "LOGO图片"));
window.addComponent(new WindowComponent("Button", "登录"));
window.addComponent(new WindowComponent("Button", "注册"));
WindowContainer frame = new WindowContainer("Frame", "FRAME1");
frame.addComponent(new WindowComponent("Lable", "用户名"));
frame.addComponent(new WindowComponent("TextBox", "文本框"));
frame.addComponent(new WindowComponent("Lable", "密码"));
frame.addComponent(new WindowComponent("PasswordBox", "密码框"));
frame.addComponent(new WindowComponent("CheckBox", "复选框"));
frame.addComponent(new WindowComponent("TextBox", "记住用户名"));
frame.addComponent(new WindowComponent("LinkLable", "忘记密码"));
window.addComponent(frame);
window.print();
}
}



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

Yangjing

关注

还未添加个人签名 2017.11.09 加入

还未添加个人简介

评论

发布
暂无评论
第三周 作业1