首页 > 其他分享 >设计模式-创建型模式之工厂

设计模式-创建型模式之工厂

时间:2022-09-22 14:22:29浏览次数:59  
标签:__ return get 创建 self 工厂 设计模式 class def

一、简单工厂

  创建对象的工作交由统一的函数接口来管理,传入不同的参数,返回不同的类对象

 1 class AqSb:
 2 
 3     def __repr__(self):
 4         return "按期申报页面"
 5 
 6 
 7 class QtSb:
 8 
 9     def __repr__(self):
10         return "其他申报页面"
11 
12 
13 def get_page(name=None):
14     if name == "1":
15         return AqSb()
16     elif name == "2":
17         return QtSb()
18 
19 
20 print(get_page("2"))

二、抽象工厂

  定义一个抽象的工厂公共基类,具体对象的创建交给工厂子类去实现

 1 class AqSb:
 2 
 3     def __repr__(self):
 4         return "按期申报页面"
 5 
 6 
 7 class QtSb:
 8 
 9     def __repr__(self):
10         return "其他申报页面"
11 
12 
13 # 抽象的工厂基类
14 import abc
15 
16 
17 class AbstractFactory(metaclass=abc.ABCMeta):
18     # 创建对象的工厂方法
19     @abc.abstractmethod
20     def get_page(self):
21         """返回具体页面类对象"""
22         ...
23 
24 
25 # 工厂派生类
26 class AqFactory(AbstractFactory):
27     def get_page(self):
28         return AqSb()
29 
30 
31 class QtFactory(AbstractFactory):
32     def get_page(self):
33         return QtSb()
34 
35 
36 if __name__ == '__main__':
37     print(AqFactory().get_page())

 

标签:__,return,get,创建,self,工厂,设计模式,class,def
From: https://www.cnblogs.com/shixiaogu/p/16719097.html

相关文章

  • JAVA中容器设计的进化史:从白盒到黑盒,再到跻身为设计模式之一的迭代器
    大家好,又见面了。在我们的项目编码中,不可避免的会用到一些容器类,我们可以直接使用List、Map、Set、Array等类型。当然,为了体现业务层面的含义,我们也会根据实际需要自行封......
  • 如何创建service的时候使用template模板?
    什么模板 模板?什么鬼,其实非常的简单! 就是在创建service的时候,直接引用变量,获取变量的值,然后将这些值变成具体的参数值。 可以设置的参数 --hostname--mount......
  • 设计模式---原型模式
    简述类型:创建型目标:通过拷贝快速创建相同或相似对象。接下来我们看一个需要改进的案例。优化案例话不多说,先来看一个创建相同或相似对象的传统写法。原版v0public......
  • 内存管理——Hotspot堆创建
    堆创建如何创建堆的过程虽然并不困难,但是涉及到的类比较多所有最好还是记录一下吧,万一忘了就麻烦了,只讨论使用Serial收集器的堆。首先来列举一下关于堆管理的几个类好了:......
  • 创建 Docker Compose 文件
    DockerCompose: 将多个Docker映像作为一个单元一起生成,然后部署该单元。DockerCompose文件是一个YAML文件,用于将多个docker容器组合在一起以进行生成和部署。......
  • Linux(ubuntu)下创建用户没有创建家目录
    https://blog.csdn.net/inthat/article/details/120436806useradd-musername#参数-m自动创建用户的家目录......
  • 设计模式-创建型模式之单例
    1、元类实现1classSingleton(type):2def__init__(self,*args,**kwargs):3super().__init__(*args,**kwargs)4self._instance=Non......
  • linux创建组和用户,切换用户
      一、创建组[root@zabbix-server~]#groupaddmonitor-ggid:指定组ID号二、创建用户[root@zabbix-server~]#useradd-u501-gmonitor-Gadmin-d/monit......
  • 创建一个简单的热力图实例
    1.安装heatmapjs//NPMnpmiheatmapjs//或者yarnyarnaddheatmapjs2.导入h337importh337from'heatmapjs';3.定义全局变量(在react中可用useRef做一个......
  • JAVA设计模式-建造者模式
    JAVA设计模式-建造者模式介绍建造者模式是通过一步一步的步骤构建一个包含多个部件的对象,每个不同的对象都是具有相同的构建过程。适用于复杂对象的构建,用户不需要知道......