【发布时间】:2021-08-06 18:00:41
【问题描述】:
当我们能够从不同的类中调用一个函数时,它会被视为外观设计模式吗?
class Mobile:
def __init__(self, name, ram, memory):
self.name = name
self.ram = ram
self.memory = memory
def info(self):
return self.name, self.ram, self.memory
class Printer:
def __init__(self, name, size, color):
self.name = name
self.size= size
self.color= color
def info(self):
return self.name, self.size, self.color
mob = Mobile("Dark", 8, 128)
prt = Printer("Alpine", '4-5', 'white')
print(mob.info())
print(prt.info())
在上面的代码中,我们对两个类使用了相同的函数。这会被视为外观设计模式吗?
【问题讨论】:
-
您能否阐明您认为这与 Facade 模式 或 鸭式打字有何关系?外观 wraps、abstracts 或 bundles 其他代码,您的代码不会这样做。鸭子类型是多态的一种方式,您的代码也没有这样做。你刚刚复制了一个类,它的行为当然是一样的——不涉及外观,也不需要在这里输入鸭子。
-
重复的类有必要不是完全不同的类吗?如果我们改变班级结构,你认为会发生什么变化?它仍然是另一个具有相同功能“信息”的类,无论如何 Duck 类型是与动态类型相关的概念,其中对象的类型或类不如它定义的方法重要。
标签: python class design-patterns facade