架构师训练营第三课作业
发布于: 2020 年 06 月 24 日
1.手写单例模式
2.组合模式打印window,代码如下
class WinForm父类根节点
public abstract class WinForm { protected String name; public WinForm(String name) { this.name = name; } public abstract void addChild(WinForm w); public abstract void removeChild(WinForm w); public abstract void print();}
class Frame树枝节点用来处理树枝逻辑
import java.util.ArrayList;import java.util.List;public class Frame extends WinForm{ private List<WinForm> children = new ArrayList<WinForm>(); public Frame(String name) { super(name); } @Override public void addChild(WinForm w) { children.add(w); } @Override public void removeChild(WinForm w) { children.remove(w); } @Override public void print(){ System.out.println("print " + name); for (WinForm f : children) { f.print(); } }}
class Contral叶子节点用来处理叶子逻辑
public class Contral extends WinForm { public Contral(String name) { super(name); } @Override public void addChild(WinForm w) { } @Override public void removeChild(WinForm w) { } @Override public void print(){ System.out.println("print " + name); }}
class Play用于调用main函数打印树结构
public class Play { public static void main(String[] args) { WinForm winForm = new Frame("WinFrom(WINDOW窗口)"); winForm.addChild(new Contral("picture(LOGO图片)")); winForm.addChild(new Contral("button(登录)")); winForm.addChild(new Contral("button(注册)")); WinForm frame = new Frame("Frame(FRAME1)"); winForm.addChild(frame); frame.addChild(new Contral("Label(用户名)")); frame.addChild(new Contral("TextBox(文本框)")); frame.addChild(new Contral("Label(密码)")); frame.addChild(new Contral("PasswordBox(密码框)")); frame.addChild(new Contral("CheckBox(复选框)")); frame.addChild(new Contral("TextBox(记住用户名)")); frame.addChild(new Contral("LinkLable(忘记密码)")); winForm.print(); }}
划线
评论
复制
发布于: 2020 年 06 月 24 日阅读数: 45
曾祥斌
关注
还未添加个人签名 2020.02.19 加入
还未添加个人简介
评论