架构师训练营 -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):
pass
class 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(忘记密码)

用户头像

BlazeLuLu

关注

还未添加个人签名 2018.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-W03H-代码重构