week3 课题作业
发布于: 2020 年 07 月 02 日
1.以下为手写单例模式代码,所用语言为python

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

以下代码实现语言为Python语言,版本为python3
#!/bin/usr/python# -*- coding:utf-8 -*-# 抽象一个组织类class Component(object):    def __init__(self, name):        self.name = name    def display(self):        pass# 叶子节点class Picture(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.nameclass Button(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.nameclass Label(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.nameclass Checkbox(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.nameclass TextBox(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.nameclass LinkLabe(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.nameclass PasswordBox(Component):    def __init__(self, name):        self.name = name    def display(self):        print self.name# 枝节点class WindowForm(Component):    def __init__(self, name):        self.name = name        self.children = []    def add(self, comp):        self.children.append(comp)    def display(self):        print self.name        for comp in self.children:            comp.display()class IFrame(Component):    def __init__(self, name):        self.name = name        self.children = []    def add(self, comp):        self.children.append(comp)    def display(self):        print self.name        for comp in self.children:            comp.display()if __name__ == "__main__":    # 生成根节点    root = WindowForm(u"Print WinForm(WINDOWN 窗口)")    # 根上长出3个叶子    root.add(Picture(u'Print Picture(LOGO 图片)'))    root.add(Button(u'Print Button(登录)'))    root.add(Button(u'Print Button(注册)'))    # 根上长出树枝frame    frame_comp = IFrame(u"Print Frame(FRAME1)")    # frame上长出七个叶子    frame_comp.add(Label(u'Print Lable(用户名)'))    frame_comp.add(Label(u'Print TextBox(文本框)'))    frame_comp.add(Label(u'Print Lable(密码)'))    frame_comp.add(Label(u'Print PasswordBox(密码框)'))    frame_comp.add(Label(u'Print CheckBox(复选框)'))    frame_comp.add(Label(u'Print TextBox(记住用户名)'))    frame_comp.add(Label(u'Print LinkLable(忘记密码)'))    root.add(frame_comp)    # 显示结构    root.display()
划线
评论
复制
发布于: 2020 年 07 月 02 日阅读数: 48
版权声明: 本文为 InfoQ 作者【倩】的原创文章。
原文链接:【http://xie.infoq.cn/article/215841c2aa1b78d12fee17f89】。文章转载请联系作者。
倩
关注
还未添加个人签名 2019.04.12 加入
还未添加个人简介











    
评论