第 3 周
发布于: 2020 年 10 月 04 日
内容总结
作业(2选1)
请在草稿纸上手写一个单例模式的实现代码。 (拍照提交作业)
请用组合设计模式编写程 序,打印输出图1的窗口, 窗口组件的树结构如图2 所示。
打印输出示例参考图3。
选择第2题
类图
实现伪代码
// 注意:这是伪代码 不能直接运行class Component(){ public abstract Function draw();}class Picture implements Component(){ public Function draw() { print("LOGO图片"); }}class Button implements Component(){ private text; public Function draw() { print(this.text + "按扭"); } public setText(value) { text = value; }}class Label implements Component(){ private text; public Function draw() { print(this.text + "Label"); } public setText(value) { text = value; }}class TextBox implements Component(){ public Function draw() { print("文本输入框"); }}class PasswordBox implements Component(){ public Function draw() { print("密码输入框"); }}class CheckBox implements Component(){ public Function draw() { print("复选输入框"); }}class LinkDecorator implements Component(){ private Component element; public Function draw() { print("带Link的") element.draw(); } public setElement(Component element) { this.element = element; }}class Window implements Component(){ private Array elements <Component>; public Function draw() { for (Component e: elements) { e.draw(); } } public Function addElement(Component element) { elements.append(element); }}class Frame extends Window(){ public Function draw() { print("Frame 开始"); upper.draw(); print("Frame 结束"); }}window = new Window();picture = new Picture();window.addElement(picture)frame = new Frame();window.addElement(frame);userLabel = new Label();userLabel.setText("用户名");frame.addElement(userLabel);frame.addElement(new TextBox());pwdLabel = new Label();pwdLabel.setText("密码")frame.addElement(pwdLabel);frame.addElement(new PasswordBox());frame.addElement(new CheckBox());rememberLabel = new Label();rememberLabel.setText("记住用户名");frame.addElement(rememberLabel);forgetLabel = new Label();forgetLabel.setText("记住用户名");forgetLink = new LinkDecorator();forgetLink.setElement(forgetLabel);frame.addElement(forgetLink);loginButton = new Button();loginButton.setText("登录");window.addElement(loginButton);regButton = new Button();regButton.setText("登录");window.addElement(regButton)window.draw();
划线
评论
复制
发布于: 2020 年 10 月 04 日阅读数: 35
paul
关注
还未添加个人签名 2018.08.22 加入
还未添加个人简介
评论