Python设计模式——工厂方法模式

工厂方法模式(Factory method pattern):如果子类的某个方法要根据情况来决定用什么类去实例化相关对象,那么可以考虑该模式。

此模式可单独使用,也可在无法预知对象类型时使用(比方说,待初始化的对象类型要从文件中读入,或是由用户来输入)。

下面代码比较直接:

#!/usr/bin/env python
# encoding: utf-8

""" 工厂模式 """
class AbstractProduct(object):
    def __init__(self):
        """ 检验 """
        self.show()

    def show(self):
        """ 要求子类实现的方法可以抛出异常 """
        raise NotImplementedError()

class ProductA(AbstractProduct):
    """ 具体类A """

    def show(self):
        print 'a产品'

class ProductB(AbstractProduct):
    """ 具体类B """

    def show(self):
        print 'b产品'

def facotory(product, *args, **kwargs):
    """ 工厂方法 """
    if product == 'A':
        return ProductA()
    else:
        return ProductB()

def main():
    a = facotory('A')
    b = facotory('B')

if __name__ == '__main__':
    main()
    原文作者:BingLau
    原文地址: https://blog.csdn.net/qingyunianer/article/details/44114397
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞