架构师第一期作业(第三周)

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



  1. 请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。

# Interface
class Printable
def print
raise "Not implemented"
end
end
class UIComponent < Printable
def initialize(name)
@name = name
end
def print
puts "print " + self.class.name + "(#{@name})"
end
end
class Container < UIComponent
def initialize(name)
super(name)
@children = []
end
def print
super
@children.each do |child|
child.print
end
end
def addChild child
@children << child
end
end
# Containers
class WinForm < Container
end
class Frame < Container
end
# Controls
class Picture < UIComponent
end
class Button < UIComponent
end
class Lable < UIComponent
end
class TextBox < UIComponent
end
class CheckBox < UIComponent
end
class PasswordBox < TextBox
end
class LinkLable < Lable
end
# set up uis
win = WinForm.new("WINDOW窗口")
win.addChild(Picture.new('LOGO图片'))
win.addChild(Button.new('登录'))
win.addChild(Button.new('注册'))
frame = Frame.new('FRAME1')
win.addChild(frame)
frame.addChild(Lable.new('用户名'))
frame.addChild(TextBox.new('文本框'))
frame.addChild(Lable.new('密码'))
frame.addChild(PasswordBox.new('密码框'))
frame.addChild(CheckBox.new('复选框'))
frame.addChild(TextBox.new('记住用户名'))
frame.addChild(LinkLable.new('忘记密码'))
# print
win.print



发布于: 2020 年 09 月 29 日 阅读数: 18
用户头像

Cheer

关注

还未添加个人签名 2018.11.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师第一期作业(第三周)