模式与重构 - 作业
发布于: 2020 年 07 月 02 日
第一题:请在草稿纸上手写一个单例模式的实现代码
第二题:请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
构建Window接口
package com.test;public interface Window { public void winFom(String input); public void pictrue(String input); public void button(String input); public void frame();}
构建Frame接口
package com.test;public interface Frame { public void lable(String input); public void textbox(String input); public void frameInfo(); public void linkLable(String string);}
构建Frame实现类
package com.test;public class FrameImpl implements Frame { @Override public void lable(String input) { System.out.println("print lable ("+input+")"); } @Override public void textbox(String input) { System.out.println("print textbox ("+input+")"); } @Override public void frameInfo() { System.out.println("print frameInfo (frame1)"); } @Override public void linkLable(String input) { System.out.println("print linkLable("+input+")"); }}
构建WINDOW实现类
package com.test;public class WindowImpl implements Window{ private WindowImpl() {} private static Window window = new WindowImpl(); public static Window getWindow() { window.winFom("WINDOW窗口"); window.pictrue("LOGO图片"); window.button("登录"); window.button("注册"); window.frame(); return window; } @Override public void winFom(String input) { System.out.println("print winFom ("+input+")"); } @Override public void pictrue(String input) { System.out.println("print pictrue ("+input+")"); } @Override public void button(String input) { System.out.println("print button ("+input+")"); } @Override public void frame() { Frame frameInfo = new FrameImpl(); frameInfo.frameInfo(); frameInfo.lable("用户名"); frameInfo.textbox("用户名框"); frameInfo.lable("密码"); frameInfo.textbox("密码框"); frameInfo.textbox("复选框"); frameInfo.textbox("记住用户名"); frameInfo.linkLable("忘记密码"); }}
打印输出结果:
package com.test;public class Demo { public static void main(String[] args) { Window window = WindowImpl.getWindow(); }}
测试结果如下:
划线
评论
复制
发布于: 2020 年 07 月 02 日阅读数: 44
版权声明: 本文为 InfoQ 作者【秤须苑】的原创文章。
原文链接:【http://xie.infoq.cn/article/9a9b2785f0c44af2f25dbec25】。文章转载请联系作者。
秤须苑
关注
还未添加个人签名 2020.05.12 加入
还未添加个人简介
评论