第三周作业
发布于: 2020 年 06 月 24 日
1.手写单例模式

2.组合模式应用

请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
代码实现:
public interface Drawable {     void draw();}public interface CombineDrawable extends Drawable{    /**     * 容器组件可以注册一个组件     */     CombineDrawable register(Drawable drawable);}/****容器组件实现*/public class ContainerControl implements CombineDrawable {    @Override    public ContainerControl register(Drawable drawable) {        this.registerdContorls.add(drawable);        return this;    }    @Override    public void draw() {        //先绘制容器自己        this.self.draw();       // 子控件遍历绘制        registerdContorls.forEach(Drawable::draw);    }    private Drawable self;    private List<Drawable> registerdContorls = new ArrayList<>();    private String name;    private ContainerControl(Drawable self, String name) {        this.self = self;        this.name = name;    }    public static ContainerControl createContainner(Drawable self, String name) {        return new ContainerControl(self, name);    }}public class DrawDemo {    public static void main(String[] args) {      // 先绘制整个窗口, 父容器        ContainerControl.createContainner(() -> System.out.println("Draw WinForm"), "WinFrom")                .register(() -> System.out.println("Draw Logo"))                .register(() -> System.out.println("Draw Button(登录)"))                .register(() -> System.out.println("Draw Button(注册)"))                .register(ContainerControl.createContainner(() -> System.out.println("Draw Frame1"), "Frame") //Frame1又是个容器                        .register(() -> System.out.println("Draw label 用户名"))                        .register(() -> System.out.println("Draw TextBox"))                        .register(() -> System.out.println("Draw PassWordBox"))                        .register(() -> System.out.println("Draw CheckBox"))                        .register(() -> System.out.println("Draw TextBox 记住用户名"))                        .register(() -> System.out.println("Draw LinkLabel 忘记密码")))                .draw(); //开始绘制    }}
划线
评论
复制
发布于: 2020 年 06 月 24 日阅读数: 52
毛叫
关注
还未添加个人签名 2018.12.25 加入
还未添加个人简介











    
评论