第三周作业
发布于: 2020 年 06 月 24 日
作业一
三种常用的单例模式
饿汉模式、懒汉模式(线程不安全)以及双重检查模式
作业二
根据作业内容,先进行类图的设计,如下:
在进行具体代码的实现
首先Element的定义如下:
/** * 元素类,可以表示单一元素或者一个容器 */public abstract class Element { private String type; private String text; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getText() { return text; } public void setText(String text) { this.text = text; } public abstract void print();}
Leaf类的定义如下:
/** * 具体实现类,表示单一元素 */public class Leaf extends Element { public Leaf(String type, String text) { super(type, text); } @Override public void print() { System.out.println("print " + getType() + "(" + getText() + ")"); }}
Suit类的定义如下:
/** * 组件类,包含多个元素的组件 */public class Suit extends Element { private List<Element> elements = new ArrayList<>(); public Suit(String type, String text) { super(type, text); } public void add(Element element) { elements.add(element); } @Override public void print() { System.out.println("print " + getType() + "(" + getText() + ")"); if (!elements.isEmpty()) { elements.forEach(x -> x.print()); } }}
最后客户端调用代码如下:
public class Client { public static void main(String[] args) { Suit winForm = new Suit("WindowForm", "WINDOW窗口"); winForm.add(new Leaf("Picture", "LOGO图片")); winForm.add(new Leaf("Button", "登录")); winForm.add(new Leaf("Button", "注册")); Suit frame = new Suit("Frame", "FRAME1"); winForm.add(frame); frame.add(new Leaf("Label", "用户名")); frame.add(new Leaf("TextBox", "文本框")); frame.add(new Leaf("Label", "密码")); frame.add(new Leaf("PasswordBox", "密码框")); frame.add(new Leaf("CheckBox", "复选框")); frame.add(new Leaf("TextBox", "记住用户名")); frame.add(new Leaf("LinkLable", "忘记密码")); winForm.print(); }}
划线
评论
复制
发布于: 2020 年 06 月 24 日阅读数: 42
考尔菲德
关注
还未添加个人签名 2018.04.19 加入
还未添加个人简介
评论 (1 条评论)