写点什么

Week3 作业

用户头像
lggl
关注
发布于: 2020 年 11 月 08 日
  1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。


  1. 请用组合设计模式编写程序,打印输出图 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.结果


用户头像

lggl

关注

还未添加个人签名 2018.08.28 加入

还未添加个人简介

评论

发布
暂无评论
Week3 作业