Python设计模式(三)--抽象工厂模式
2017-04-12 20:10
330 查看
抽象工厂
抽象工厂模式(英语:Abstract factory pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。在正常使用中,客户端程序需要创建抽象工厂的具体实现,然后使用抽象工厂作为
接口来创建这一主题的具体对象。客户端程序不需要知道(或关心)它从这些内部的工厂方法中获得对象的具体类型,因为客户端程序仅使用这些对象的通用接口。抽象工厂模式将一组对象的实现细节与他们的一般使用分离开来。[1]
概念
抽象工厂模式的实质是“提供接口,创建一系列相关或独立的对象,而不指定这些对象的具体类。UML图
实现
#!/usr/bin/env python #-*- coding:utf-8 -*- ####################################################### # # 文件名 : abstruct_factory.py # 作者 : WangYi # 电子邮箱 : gzytemail@126.com # 日期 : 2017/04/12 17:17:22 # # 描述 : 抽象工厂模式 # # Abstruct Product A class APA(object): def __init__(self): pass def create(self): pass # Abstruct Product B class APB(object): def __init__(self): pass def create(self): pass # Product A_1 class PA1(APA): def __init__(self): print("create PA1 instance") def create(self): print("making a Product A1") # Product A_1 class PA2(APA): def __init__(self): print("create PA2 instance") def create(self): print("making a Product A2") # Product B_1 class PB1(APB): def __init__(self): print("create PB1 instance") def create(self): print("making a Product B1") # Product B_2 class PB2(APB): def __init__(self): print("create PB2 instance") # Abstruct Factory Class class AF(object): def __init__(self): pass def make_product_a(self): pass def make_product_b(self): pass # Factory A class FactoryA(AF): def __init__(self): pass def make_product_a(self): return PA1() def make_product_b(self): return PB1() # Factory B class FactoryB(AF): def __init__(self): pass def make_product_a(self): return PA2() def make_product_b(self): return PB2() def product_process(): for cls in [FactoryA, FactoryB]: f = cls() # get Product A instance a = f.make_product_a() a.create() # get Product B instance b = f.make_product_b() b.create() if __name__ == "__main__": product_process()
结果如下:
create PA1 instance making a Product A1 create PB1 instance making a Product B1 create PA2 instance making a Product A2 create PB2 instance making a Product B2
相关文章推荐
- Python设计模式之抽象工厂模式
- 设计模式:抽象工厂模式(Python)
- [Python设计模式] 第15章 如何兼容各种DB——抽象工厂模式
- Python设计模式(一)【抽象工厂模式】
- 设计模式之-抽象工厂模式VS简单工厂模式(python)
- 举例讲解Python设计模式编程中对抽象工厂模式的运用
- Python实现设计模式--03.抽象工厂模式(Abstract Factory Pattern)
- 举例讲解Python设计模式编程的代理模式与抽象工厂模式
- 举例讲解Python设计模式编程中对抽象工厂模式的运用
- [Python编程实战] 第一章 python的创建型设计模式1.1抽象工厂模式
- Python的创建型设计模式之抽象工厂模式
- 举例讲解Python设计模式编程的代理模式与抽象工厂模式
- Python设计模式之抽象工厂模式
- python创建型设计模式学习——抽象工厂模式
- 设计模式之-抽象工厂模式VS简单工厂模式(python)
- python设计模式之抽象工厂模式
- 设计模式(Python)-简单工厂,工厂方法和抽象工厂模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 设计模式C#描述——抽象工厂模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)