设计模式之简单工厂模式

工厂及时生产产品的车间,在面向对象中就是类的实例。所以工厂就是一个能够产出其他类型的对象的类。工厂类设计模式主要有三种,即简单工厂模式、工厂模式和抽象工厂模式。

简单工厂模式

简单工厂模式是指专门定义一个工厂类来负责创建产品类的实例,被创建的产品通常都有一个共同的弗雷。

该设模式包含三个角色:

1、简单工厂角色:工厂模式的核心,负责生产具体的产品。工厂类可以被外部用户即客户端调用,创建产品对象,作用主要是实现外部用户和产品对象的解耦。

2、抽象产品角色:简单工厂模式创建的具体产品对象的父类,负责描述索引产品的共同特征。

3、具体产品角色:具体的产品对象,是客户端调用工厂的目的就是产生具体的产品。

还是举个栗子吧:

class Fruit:
    def produce(self):
        print("fruit was producesd")

class Apple(Fruit):
    def produce(self):
         print("Apple was produced")
class Pear(Fruit):
    def produce(self):
         print("Pear was produced")

class FruitFactory:
    def produce_the_fruit(self,name):
        if name=="apple":
            return Apple()
        elif name=="pear":
            return Pear()
        else:
            return Fruit()

if _name__=="__main__":
    factory=FruitFactory()
    apple=factory.produce_the_fruit("apple")
    apple.produce()

简单工厂模式的优点:

  客户端与工厂进行交互,不再直接生产产品,实现了外部对象与具体产品对象之间的解耦合。

缺点:

  具体的产品类修改过多或有新的产品类的情况下,需要修改工厂类的代码,加大了维护难度。违反了开闭原则。

转载于:https://www.cnblogs.com/zuoshoushizi/p/8453603.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值