STUNUM

面有萌色,胸有丘壑。心有猛虎,细嗅蔷薇。

嗨,我是王鑫 (@stunum),一名 Python 开发者。


Python web开发,后端以Django框架为主,前端使用Vue.js...

python设计模式之抽象工厂

抽象工厂

意义:

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

适用性:
  • 一个系统要独立于它的产品的创建、组合和表示时。
  • 一个系统要由多个产品系列中的一个来配置时。
  • 当你要强调一系列相关的产品对象的设计以便进行联合使用时。
  • 当你提供一个产品类库,而只想显示它们的接口而不是实现时。
举例:
class A(object):
    def __init__(self):
        self.word = "运行A"
    def run(self):
        print(self.word)

class B(object):
    def __init__(self):
        self.word = "运行B"
    def run(self):
        print(self.word)

class Interface(object):
    def __init__(self, classname=None):
        self.name = classname

    def run(self):
        self.name().run()

if __name__ == "__main__":
    test = Interface()
    test.name = "A"
    test.run()
    test.name = "B"
    test.run()

输出结果:

运行A
运行B
最近的文章

python设计模式之原型模式

原型模式意义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。适用性:当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者为了避免创建一个与产品类层次平行的工厂类层次时;或者当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。举例:import copyclass Information(object): """个人信息""" def __init__(self): se...…

水滴石穿继续阅读
更早的文章

python设计模式之建造者模式

###意义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用性: 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 举例: ```class Builder(object): “"”建造流程:原料—施工””” def init(self): self.materiel = None self.design = None def run(self):...…

水滴石穿继续阅读