zoukankan      html  css  js  c++  java
  • Python设计模式:工厂模式

    介绍:

      工厂模式是23种设计模式中最常用的模式之一,它又可以细分为简单工厂,工厂方法和抽象工厂。

      工厂模式可以解耦,把实例的创建和使用过程分开。其次,工厂模式将类实例化过程统一管理起来了,方便以后维护。

    ① 工厂方法:

    定义:工厂方法定义了一个创建对象的接口,但由子类决定要实例化的类是哪个。工厂方法让类把实例化推迟到子类

    设计模式的“工厂”这个概念就是来源于我们现实中的工厂,我们把原材料、图纸等生产资料的投入到一个工厂里面,工厂就会给我们输出相应的产品,所以实现工厂方法很简单,一个函数就是一个工厂。

    def fatory(drawing):
        if drawing == 'BMW':
            print("得到一辆宝马汽车")
            return '宝马汽车'
    
        if drawing == 'Benz':
            print("得到一辆奔驰汽车")
            return '奔驰汽车'
    
    fatory('BMW')

    ② 抽象工厂

    抽象工厂顾名思义是个生产的产品比较抽象的工厂,如果工厂方法生产出来的是汽车,那么抽象工厂生产出来的应该是汽车厂,汽车厂再用来生产汽车,是工厂方法向上再抽象了一层,相当于创建工厂的工厂。

    class CarFactory:
        def __str__(self):
            return '车厂'
    
    
    class BoatFactory:
        def __str__(self):
            return '船厂'
    
    
    class AbstractFactory:
        factory = {
            'boat_factory': BoatFactory,
            'car_factory': CarFactory,
        }
    
        @classmethod
        def get(cls, factory_name):
            factory = cls.factory.get(factory_name)
            print(f"得到一个{factory()}")
            return factory
    
    
    AbstractFactory.get('car_factory')
    参考: https://www.jianshu.com/p/4c699c7a62c2
  • 相关阅读:
    importToMbtiles
    http-server服务跨域设置
    Leaflet 测试加载高德地图
    矢量切片
    zigzag方式编码
    CentOS7安装docker
    CentOS7安装NodeJS
    CentOS7上Python3.5安装
    JDK8下maven使用maven-javadoc-plugin插件报错
    Ubuntu16.10上安装NodeJS6.9.2
  • 原文地址:https://www.cnblogs.com/jiaklop9/p/14388259.html
Copyright © 2011-2022 走看看