架构师训练营 -W03H- 代码重构
发布于: 2020 年 06 月 23 日
一、请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
单例模式
二、请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。
组合模式程序:
class ComponentBases(object): def __init__(self, name): self.name = name def add(self, obj): pass def remove(self, obj): pass def display(self, number): passclass Node(ComponentBases): def __init__(self, name): self.name = name self.children = [] def add(self, obj): self.children.append(obj) def remove(self, obj): self.children.remove(obj) def display(self, number=1): print(f"print {self.name}") n = number + 1 for obj in self.children: obj.display(n)if __name__ == '__main__': window_form = Node('window form(WINDOW窗口)') picture_logo = Node('Picture(LOGO图片)') window_form.add(picture_logo) button_log_in = Node('Button(登陆)') window_form.add(button_log_in) button_register = Node('Button(注册)') window_form.add(button_register) frame = Node('Frame(FRAME1)') window_form.add(frame) lable_username = Node('Lable(用户名)') frame.add(lable_username) textbox_username = Node('TextBox(文本框)') frame.add(textbox_username) lable_password = Node('Lable(密码)') frame.add(lable_password) textbox_password = Node('TextBox(密码框)') frame.add(textbox_password) checkbox = Node('CheckBox(复选框)') frame.add(checkbox) textbox_remember_username = Node('TextBox(记住用户名)') frame.add(textbox_remember_username) linklable = Node('LinkLable(忘记密码)') frame.add(linklable) window_form.display()
运行结果:
print window form(WINDOW窗口)print Picture(LOGO图片)print Button(登陆)print Button(注册)print Frame(FRAME1)print Lable(用户名)print TextBox(文本框)print Lable(密码)print TextBox(密码框)print CheckBox(复选框)print TextBox(记住用户名)print LinkLable(忘记密码)
划线
评论
复制
发布于: 2020 年 06 月 23 日阅读数: 60
BlazeLuLu
关注
还未添加个人签名 2018.05.30 加入
还未添加个人简介
评论