模式与重构 - 作业
发布于: 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 加入
还未添加个人简介











 
    
评论