在使用工厂单列模式时,若是使用工厂产生的对象都继承了工厂的话会出现以下的错误(只展示正确的代码):
YES
init Factory
基础算法
<__main__.ComputerFactory object at 0x02AD2870>
<__main__.ComputerFactory object at 0x02AD2870>
<__main__.ComputerFactory object at 0x02AD2870>
<__main__.ComputerFactory object at 0x02AD2870>
所有的对象都是同一个,工厂产生的对象还是工厂本身,所以继承应该是继承父类,在工厂外面而不是工厂本身
class ComputerFactory: __obj = None __init_flag = True #工厂 def creat_computer(self, com): if com == "联想": return LX() elif com == "华硕": return HS() elif com == "神州": return SZ() else: return "位置品牌无法创建" #单例 def __new__(cls, *args, **kwargs): if cls.__obj == None: cls.__obj = object.__new__(cls) return cls.__obj def __init__(self):