• python实现简单工厂模式


    设计模式之简单工厂模式:

    模式定义:

    定义一个工厂类,它可以根据参数的不同返回不同类的实例,在简单工厂模式中用于被创建实例 的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法(Static Factory Method)。需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无需知道其实现过程

    模式结构:

    简单工厂模式包含如下角色:
    Factory:工厂角色
    Product:抽象产品角色
    ConcreteProduct:具体产品角色

    简单工厂:

    首先,我们来看一个简单工厂的例子:

    class Asus(object):
       """
      华硕
      """
       def __repr__(self):
           return "ASUS"


    class Dell(object):
       """
      戴尔
      """
       def __repr__(self):
           return "DELL"


    # 假设我们有两款电脑产品,分别是戴尔和华硕,如果没有“工厂”来生产它们,我们就要在代码中自己进行实例化,如:
    asus = Asus()
    dell = Dell()

    但现实中,你可能会面对很多电脑产品,而且每个产品的构造参数还不一样,这样在创建实例时会遇到麻烦。这时就可以构造一个“简单工厂”把所有产品实例化的过程封装在里面。

    class SimpleCarFactory(object):
       """
      简单工厂
      """
       @staticmethod
       def product_car(name):
           if name == 'asus':
               return Asus()
           elif name == 'dell':
               return Dell()


    simple_factory = SimpleCarFactory()
    asus = simple_factory.product_car('asus')
    dell = SimpleCarFactory.product_car('dell')

    你会发现,有了SimpleCarFactory类后,就可以通过向固定的接口传入参数获得想要的对象实例

    总结:

    • 简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。

    • 简单工厂模式最大的优点在于实现对象的创建和对象的使用分离,将对象的创建交给专门的工厂类负责,但是其最大的缺点在于工厂类不够灵活,增加新的具体产品需要修改工厂类的判断逻辑代码,而且产品较多时,工厂方法代码将会非常复杂。

    • 简单工厂模式适用情况包括:工厂类负责创建的对象比较少;客户端只知道传入工厂类的参数,对于如何创建对象不关心。

    •  

  • 相关阅读:
    Xpath在选择器中正确,在代码中返回的是空列表问题
    爬虫爬取实例与乱码的处理
    计算机知识
    Django的学习(六)————templates过滤器、Django shell、admin
    Django的学习(五)————实战问题
    Django的学习(四)———— admin
    Django的学习(三)————models
    Window10 MySQL5.7.X 使用SSL连接
    asp.net 防止 跨站脚本
    实用的Windows 工具命令
  • 原文地址:https://www.cnblogs.com/fiee/p/13911931.html
Copyright © 2020-2023  润新知