栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python继承和组合 工厂模式、单例模式实现如下需求

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python继承和组合 工厂模式、单例模式实现如下需求

使用工厂模式、单例模式实现如下需求:
(1) 电脑工厂类 ComputerFactory 用于生产电脑 Computer。工厂类使用单例模式,也就是说只能有一个工厂对象。
(2) 工厂类中可以生产各种品牌的电脑:联想、华硕、神舟
(3) 各种品牌的电脑使用继承实现:
(4) 父类是 Computer 类,定义了 calculate 方法
(5) 各品牌电脑类需要重写父类的 calculate

继承
class ComputerFactory:
    def __init__(self, lenovo, ASUS, HASSEE):
        self.lenovo = lenovo
        self.ASUS = ASUS
        self.HASSEE = HASSEE

    def createComputer(self):
        print(f"创建了电脑")

    def calculate(self):
        print("我是父")


class lenovo(ComputerFactory):  # 联想
    def calcula(self):
        print("我是继承的lenovo过来的")


class ASUS(ComputerFactory):  # 华硕
    def calcula(self):
        print("我是继承的ASUS过来的")


class HASSEE(ComputerFactory):  # 神舟
    def calcula(self):
        print("我是继承的HASSEE过来的")


if __name__ == '__main__':
    Computer = ComputerFactory(lenovo, ASUS, HASSEE)
    Computer.lenovo.calcula(1)
组合
# class ComputerFactory:
#     def __init__(self, lenovo, ASUS, HASSEE):
#         self.lenovo = lenovo
#         self.ASUS = ASUS
#         self.HASSEE = HASSEE
#
#     def createComputer(self):
#         print(f"创建了电脑")
#
#     def calculate(self):
#         pass
#
#
# class lenovo():  # 联想
#     def calcula(self):
#         print("我是继承的lenovo过来的")
#
#
# class ASUS():  # 华硕
#     def calcula(self):
#         print("我是继承的ASUS过来的")
#
#
# class HASSEE():  # 神舟
#     def calcula(self):
#         print("我是继承的HASSEE过来的")
#
#
# c = lenovo()
# a = ASUS()
# b = HASSEE()
# Computer = ComputerFactory(c, a, b)
# Computer.lenovo.calcula()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987094.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号