Python设计模式(二)--工厂模式

工厂模式

概念

定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。

适用场景:

  • 创建对象需要大量重复的代码
  • 创建对象需要访问某些信息, 而这些信息不应该包含在复合类中
  • 创建对象的生命周期必须集中管理, 以保证在整个程序中具有一致的行为。

需求

实现一个工厂方法,通过输入物料,然后产出不同的产品类。

实现

(一)、简单工厂

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#######################################################
#    文件名 :   factory.py
#    作者   :   WangYi
#  电子邮箱 :  gzytemail@126.com
#    日期   :   2017/04/12 14:53:19
#    
#    描述   :   工厂模式
#


class ProductA:
    """ 
    产品A
    """
    def __init__(self):
        pass

    def product(self):
        print("生产一个产品A")


class ProductB:
    """ 
    产品B
    """
    def __init__(self):
        pass

    def product(self):
        print("生产一个产品B")


class Factory(object):
    """ 
    工厂
    """
    def __init__(self):
        pass

    @staticmethod
    def make_product(material):
        if material == "A":
            return ProductA()
        elif material == "B":
            return ProductB()
        else:
            raise ValueError("the material can't made product")

参考:

工厂方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值