Python中的工厂

我想知道Python Cognoscenti如何使用/实施工厂模式 Python. 在我有限的C ++经验中,使用工厂的原因之一 方法是使创建派生的类实例更容易 基础课. 该实例被声明为基础的实例 班级. 工厂返回一个派生类的实例,以及 一切都很开心. 在Python中,由于类型声明不必是 静态,看来没有必要使用工厂方法. 但是,我猜我不了解 在Python中使用工厂. 有人有例子或指示吗 Python中的工厂如何使用? 谢谢 - 罗伯特

# 回答1

罗伯特·费雷尔(Robert Ferrell)写道: [狙击] 这是一个链接:http://aspn.activestate.com/aspn/coo...n/recipe/86900 使用工厂的原因是客户端(代码 创建实例)不知道哪个类或子类 想要创建一个实例. 因此,您正在建造一个工厂 足够聪明,可以创建正确的类实例. 就我而言,在解析XML文档并创建实例时 代表文档的树中的节点 (每个节点类的超级类)进行解析. 然而, 每个超级班级必须足够聪明才能创建一个填充的树 与子类实例,其中可能包含其他自定义 代码,*如果*可用. 我对使用工厂的其他原因感兴趣. - 戴夫 - - dave kuhlman http://www.rexx.com/~dkuhlman dkdebydexpor@rexx.com
# 回答2

戴夫·库尔曼(Dave Kuhlman)写道: 我使用工厂的最常见原因是将客户端代码与 直接引用类名. 我发现我经常这样做 可能很快更改或经常更改的代码. 这种方法 尽管实际的类名称 实施可能有很大差异. 考虑: 班级Mighbewhatiwant: 经过 班级助手: 经过 def Build(): 返回Mightbewhatiwant() 由于问题通过肘部润滑脂揭示了,这可能会改变: 班级this whateReallyed: 经过 班级较些: 经过 def Build(): 返回此whatearlynedeed() 当然,这些不是最严格的GOF的工厂,但我认为 意图很明确. 特洛伊

标签: python

添加新评论