写点什么

第三周作业

用户头像
数字
关注
发布于: 2020 年 06 月 24 日

1      作业1

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





2      作业2

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





import java.util.ArrayList;
import java.util.List;

interface Widget {
public void print();
}

class NamedWidget implements Widget{
String name;
public NamedWidget(String name) {
this.name = name;
}
public void print() {
System.out.println("print "+ this.getClass().getName() + "("+ name + ")" );
}
}

class ContainerWidget extends NamedWidget {
List<Widget> children;
public ContainerWidget(String name) {
super(name);
children = new ArrayList<Widget>();
}
public void addChildWidget(Widget widget) {
children.add(widget);
}
public void print() {
super.print();
for(Widget widget:children) {
widget.print();
}
}
}
class WinForm extends ContainerWidget {
public WinForm(String name) {
super(name);
}
}

class Picture extends NamedWidget {
public Picture(String name) {
super(name);
}
}

class Button extends NamedWidget {
public Button(String name) {
super(name);
}
}

class Frame extends ContainerWidget {
public Frame(String name) {
super(name);
}
}

class Label extends NamedWidget {
public Label(String name) {
super(name);
}
}

class TextBox extends NamedWidget {
public TextBox(String name) {
super(name);
}
}

class PasswordBox extends NamedWidget {
public PasswordBox(String name) {
super(name);
}
}

class CheckBox extends NamedWidget {
public CheckBox(String name) {
super(name);
}
}

class LinkLabel extends NamedWidget {
public LinkLabel(String name) {
super(name);
}
}

public class CompositeSample {

public static void main(String[] args) {
// TODO Auto-generated method stub
WinForm form = new WinForm("WINDOW窗口");
form.addChildWidget(new Picture("LOGO图片"));
form.addChildWidget(new Button("登陆"));
form.addChildWidget(new Button("注册"));
Frame frame = new Frame("FRAME1");
frame.addChildWidget(new Label("用户名"));
frame.addChildWidget(new TextBox("文本框"));
frame.addChildWidget(new Label("密码"));
frame.addChildWidget(new PasswordBox("密码框"));
frame.addChildWidget(new CheckBox("复选框"));
frame.addChildWidget(new TextBox("忘记用户名"));
frame.addChildWidget(new TextBox("忘记密码"));
form.addChildWidget(frame);
form.print();
}

}


 



发布于: 2020 年 06 月 24 日阅读数: 43
用户头像

数字

关注

还未添加个人签名 2018.10.06 加入

还未添加个人简介

评论

发布
暂无评论
第三周作业