架构师训练营(第 3 周作业)
发布于: 2020 年 06 月 24 日
1. 作业一
请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
Python单例模式代码实现:
2. 作业二
请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图
Python组合模式实现:composite_design_pattern.py
#! /usr/bin/env python# -*- coding: utf-8 -*-class Base(object): def __init__(self, desc): self.name = self.__class__.__name__ + ' (' + desc + ')' self.obj_list = [] def do(self): print(self.name) for obj in self.obj_list: obj.do() return def add(self, obj): self.obj_list.append(obj) returnclass WinForm(Base): def __init__(self, desc): super(WinForm, self).__init__(desc)class Picture(Base): def __init__(self, desc): super(Picture, self).__init__(desc)class Button(Base): def __init__(self, desc): super(Button, self).__init__(desc)class Frame(Base): def __init__(self, desc): super(Frame, self).__init__(desc)class Label(Base): def __init__(self, desc): super(Label, self).__init__(desc)class TextBox(Base): def __init__(self, desc): super(TextBox, self).__init__(desc)class CheckBox(Base): def __init__(self, desc): super(CheckBox, self).__init__(desc)class LinkLabel(Base): def __init__(self, desc): super(LinkLabel, self).__init__(desc)def main(): # 构造frame frame = Frame('frame1') frame.add(Label('用户名')) frame.add(TextBox('文本框')) frame.add(Label('密码')) frame.add(TextBox('密码框')) frame.add(CheckBox('复选框')) frame.add(TextBox('记住用户名')) frame.add(TextBox('忘记密码')) # 构造window w = WinForm('Window窗口') w.add(Picture('Logo图片')) w.add(Button('登录')) w.add(Button('注册')) w.add(frame) # 生成: 如果有必要,子类可以重写父类的do方法 w.do()if __name__ == '__main__': main()
划线
评论
复制
发布于: 2020 年 06 月 24 日 阅读数: 35
版权声明: 本文为 InfoQ 作者【李德政】的原创文章。
原文链接:【http://xie.infoq.cn/article/0bf6ef13d160fd4ce6eb794d4】。文章转载请联系作者。
李德政
关注
还未添加个人签名 2017.11.30 加入
还未添加个人简介
评论