【发布时间】:2019-03-15 04:05:35
【问题描述】:
我正在实施抽象工厂设计模式。我考虑的场景如下。
。文章和图片来源来自https://medium.com/@hitherejoe/design-patterns-abstract-factory-39a22985bdbf。我正在尝试在 Python 中实现,但由于以下原因,我被卡住了,无法继续前进
当您在 Python 中将 ThemeFactory 定义为接口时,您在 ThemeFacory 中定义的任何方法都必须在 LightTheme 和 DarkTheme 等具体类中实现。
但我担心的是,是否有必要为具体类 DarkTheme 中的方法 createLightTheme 提供实现,反之亦然。我是否需要重新设计完整的架构?
import abc
class ThemeFactory(metaclass=abc.ABCMeta):
@abc.abstractmethod
def createdarktheme(self):
pass
@abc.abstractmethod
def createlighttheme(self):
pass
class DarkTheme(ThemeFactory):
def createdarktheme(self):
print('Hello created dark theme')
def createlighttheme(self):
pass
if __name__== '__main__':
dark = DarkTheme()
dark.createdarktheme()
【问题讨论】:
-
这看起来不太正确。