简单工厂方法模式(the Simple Factory Method Pattern)的设计类图如图所示。图中的Creator类是一个工厂类。根据“四人帮”(Gang of Four,GOF)的软件设计模式的记号,图中的右半部分类叫做产品类,由接口Product与具体的实现类产品类ConcreteProduct组成。
产品类实际上代表被创建的类的结构,而Creator类是简单工厂方法模式的核心部分。Creator类是简单工厂方法的核心部分。Creator类拥有一个方法factory(),即工厂方法,该方法负责创建产品类对象。简单工厂方法模式的特点是仅仅有一个具体的(Concrete)创建者类,并且在此类中包含一个静态工厂方法factory()。
简单工厂方法模式所包含的各组成部分意义如下。
from abc import ABC, abstractmethod
class Creator:
@staticmethod
def get_product(option):
product = None
if option == 1:
product = ConcreteProduct1()
elif option == 2:
product = ConcreteProduct2()
return product
class Product(ABC):
@abstractmethod
def get_product_info(self):
raise NotImplementedError
class ConcreteProduct1(Product):
def get_product_info(self):
return'ConcreteProduct1'
class ConcreteProduct2(Product):
def get_product_info(self):
return'ConcreteProduct2'
class Client:
@staticmethod
def main():
print('Product types:ConcreteProduct1(1),ConcreteProduct2(2)')
option0 = int(input('Please select:'))
print(Creator.get_product(option0).get_product_info())
if __name__ == '__main__':
Client.main()
简单工厂方法模式的优点如下:
简单工厂方法模式的缺点如下:
本文分享自 Python机器学习算法说书人 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!