Week3 作业
发布于: 2020 年 11 月 08 日
请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
1.先定义一个接口 Print
package Composite;
public interface Print { public void print();}复制代码
2.WindowForm 基类,实现 Print 接口
package Composite;
import java.util.ArrayList;import java.util.List;
public class WindowForm implements Print {
protected List<WindowForm> windowFormList = new ArrayList<WindowForm>(); protected String windName;
public WindowForm(String windName) { this.windName = windName; }
public void print() { System.out.println(windName); for (WindowForm wind:windowFormList) { wind.print(); } }
public void addWind(WindowForm windowForm) { for (WindowForm wind:windowFormList) { if (wind == windowForm){ return; } } windowFormList.add(windowForm); }
public void delWind(WindowForm windowForm) { for (WindowForm wind:windowFormList) { if (wind == windowForm){ windowFormList.remove(wind); return; } } }}
复制代码
3.Picture 类
package Composite;
public class Picture extends WindowForm {
public Picture(String windName) { super(windName); }}
复制代码
4.Button
package Composite;
public class Button extends WindowForm{ public Button(String windName) { super(windName); }}
复制代码
5.Frame
package Composite;
public class Frame extends WindowForm { public Frame(String windName) { super(windName); }}
复制代码
6.后面的类就省略了,直接看调用代码
import Composite.Button;import Composite.Frame;import Composite.Picture;import Composite.WindowForm;
public class main {
public static void main(String[] args) { WindowForm wind = new WindowForm("Print WinForm(WINDOWS 窗口)"); wind.addWind(new Picture("Print Picture(LOGO图片)")); wind.addWind(new Button("Print Button(登录)")); wind.addWind(new Button("Print Button(注册)"));// wind.print(); Frame frame = new Frame("Print Frame(FRAME1)"); frame.addWind(new Frame("Print Lable(用户名)")); frame.addWind(new Frame("Print TextBox(文本框)")); frame.addWind(new Frame("Print Lable(密码)")); frame.addWind(new Frame("Print PasswordBox(密码框)")); frame.addWind(new Frame("Print CheckBox(复选框)")); frame.addWind(new Frame("Print TextBox(记住用户名)")); frame.addWind(new Frame("Print LinkLable(忘记密码)")); wind.addWind(frame); wind.print(); }}
复制代码
7.结果
划线
评论
复制
发布于: 2020 年 11 月 08 日阅读数: 31
lggl
关注
还未添加个人签名 2018.08.28 加入
还未添加个人简介











评论