美文网首页
python设计模式 - 工厂模式之简单工厂

python设计模式 - 工厂模式之简单工厂

作者: RedGecko | 来源:发表于2019-02-11 22:53 被阅读5次

python 环境

python==3.7.2

工厂模式简介

在面向对象中,“工厂”表示一个负责创建其他类型对象的类。客户端通过传参调用工厂类对象的不同方法,工厂类根据参数创建类对象并返回给客户端。这里通常会有个疑问,既然客户端可以自己创建类对象,为何还要通过工厂来创建呢?这就要说到工厂模式的优点啦。

  1. 松耦合
    类对象的创建可以独立于类的实现方法
  2. 封装性好
    客户端无需知道如何创建类对象,只需了解工厂类的接口,方法和参数,即可创建类对象。简化了客户端操作。
  3. 高扩展性
    可轻松在工厂类中增加方法类创建其他类对象,而客户端无需修改代码
  4. 可控性强
    工厂类的方法在返回对象时,可以重用现有对象,而客户端创建则每次都要返回新对象。

简单工厂模式

简单工厂模式并不能算作一种设计模式,更应该归类于一种编程习惯。它允许接口创建对象,而不用暴露对象的创建逻辑。

简单工厂模式实现

from abc import ABCMeta, abstractmethod


class Animal(metaclass=ABCMeta):
    @abstractmethod
    def run(self):
        pass


class Dog(Animal):
    def run(self):
        print("dog running")


class Fish(Animal):
    def run(self):
        print("fish swimming")


class Bird(Animal):
    def run(self):
        print("bird flying")


class AnimalFactory(object):
    @staticmethod
    def animal_run(animal_type):
        try:
            eval(animal_type)().run()
        except NameError:
            print("animal_type not supported")


if __name__ == '__main__':
    animal_factory = AnimalFactory()
    animal_factory.animal_run('Bird')
    animal_factory.animal_run('Fish')
    animal_factory.animal_run('Dog')
    animal_factory.animal_run('aaa')

简单工厂模式缺点

简单工厂模式最大的弊病在于,工厂类的职责过重,每增加一个类型,都要修改工厂类的代码,在工厂中管理的类型较多时,工厂逻辑将会过于复杂,难以维护。

相关文章

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • 设计模式之工厂模式

    设计模式之工厂模式 1. 简单工厂模式 1.1 模式定义 简单工厂模式又称为静态工厂方法,它属于创建型模式。在简单...

  • 2016.06笔记

    iOS设计模式之工厂模式(简单工厂,工厂方法,抽象工厂) 简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 设计模式之简单工厂、工厂方法、抽象工厂

    设计模式之简单工厂、工厂方法、抽象工厂 什么是设计模式? 设计模式(Design pattern)代表了最佳的实践...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

网友评论

      本文标题:python设计模式 - 工厂模式之简单工厂

      本文链接:https://www.haomeiwen.com/subject/ddsceqtx.html