当我们能够从不同的类调用一个函数时,它会被视为Facade设计模式吗
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())
在上面的代码中,我们对这两个类使用相同的函数。这会被视为一种立面设计模式吗
立面通过单个接口提供抽象
这里并没有抽象任何东西,只是定义了两个独立的实例方法,这可以在任何OOP语言中完成,所以duck类型是不相关的
请注意,您的类是完全相同的,因此您不需要两个类,只需要
class Mobile
的两个实例如果您定义了一个abstract base class,那么您将对子类使用继承,而不是façade
在您的案例中,Façade的一个例子是一些运营商(通过单个接口)将呼叫/消息路由到任何“移动设备”,移动设备可以有完全不同的联系方式(可以定义为父类中的抽象函数)
相关问题 更多 >
编程相关推荐