python设计模式-工厂模式
2017-04-12 10:14
344 查看
在工厂设计模式中,客户端可以请求一个对象,但是不用根据对象来自哪里,工厂根据不同的需要返回不同的对象(也就是说,工厂模式的中心思想是简化对象的创建)
工厂通常有两种形式,工厂方法和抽象工厂,工厂方法对不同的输入参数返回不同的对象;抽象工厂是一组用于创建一系列相关对象的工厂方法。
1. 工厂方法
对不同的输入返回不同的对象
2. 抽象工厂
是一组创建用于创建一系列相关对象的工厂方法
工厂通常有两种形式,工厂方法和抽象工厂,工厂方法对不同的输入参数返回不同的对象;抽象工厂是一组用于创建一系列相关对象的工厂方法。
1. 工厂方法
对不同的输入返回不同的对象
import xml.etree.ElementTree as etree import json class JSONConnector: def __init__(self, filepath): #具体初始化 def parsed_data(self): #返回获取的数据 class XMLConnector: def __init__(self, filepath): #具体初始化 def parsed_data(self): #返回获取的数据 def connection_factory(filepath): #if JSON file #JSONConnector #elif XML file #XMLConnector def connect_to(filepath): factory = None try: factory = connection_factory(filepath) except ValueError as ve: raise ValueError('Can not connect to ()'.format(filepath)) return factory def main(): factory = connect_to(filepath)
2. 抽象工厂
是一组创建用于创建一系列相关对象的工厂方法
class Frog: def __init__(self, name): def __str__(self): def interact_with(self, obstacle): class Bug: def __str__(self): def action(self): class FrogWorld: def __init__(self, name): def __str__(self): def make_charactor(self): def make_obstacle(self): #----------------------------- class Wizard: def __init__(self, name): def __str__(self): def interact_with(self, obstacle): class Ork: def __str__(self): def action(self): class WizardWorld: def __init__(self, name): def __str__(self): def make_charactor(self): def make_obstacle(self): #----------------------------- class GameEnvironment: def __init__(self, factory): self.hero = factory.make_charactor() self.obstacle = factory.make_obstacle() def play(self): self.hero.interact_with(self.obstacle) #----------------------------- def main(): #if 条件一 #game = FrogWorld #elif 条件二 #game = WizardWorld
相关文章推荐
- Python 设计模式 -- 简单工厂模式
- python设计模式(1)-Simple Factory(Static Factory)(简单工厂)
- 实例讲解Python设计模式编程之工厂方法模式的使用
- python实现设计模式(一、工厂模式)
- Python3 设计模式_工厂模式
- 23种设计模式之python实现--抽象工厂
- Python3 设计模式_工厂模式
- python设计模式 之 简单工厂模式
- Python设计模式--工厂模式
- 设计模式之python版(五)--工厂方法
- python实现的工厂方法--设计模式初级
- PYTHON设计模式,创建型之工厂方法模式
- python实践设计模式(一)概述和工厂模式
- python设计模式(一)--简单工厂(上)
- 23种设计模式之python实现--工厂方法
- 翻译-精通python设计模式-工厂模式
- 设计模式之一:简单工厂模式,用python实现简易计算器
- python设计模式之工厂模式
- 6、python设计模式之工厂模式
- Python 设计模式 --抽象工厂设计模式