Chapter12 python进阶——设计模式

一、设计模式

(一)单例模式

调用类生成同样的对象

Chapter12 python进阶——设计模式

Chapter12 python进阶——设计模式

这也可以说是一种伪单例模式,因为限定了创建模式User.get_instance(name),如果还想用User(name)就不一样了。

Chapter12 python进阶——设计模式

然而,python没有绝对意义上的单例模式,仍可找到漏洞:

Chapter12 python进阶——设计模式

 

(二)工厂模式:

是用工厂方法替代new操作的一种模式,虽然会多做一些工作,但是会给享带来更大的可扩展性和尽量少的修改量

简单工厂模式:

Simple Factory模式不是独立的设计模式,他是Factory Method模式的一种简单的、特殊的实现。他也被称为静态工厂模式,通常创建者的创建方法被设计为static方便调用。

1.静态的工厂类

2.用全局函数改写工厂类。

Chapter12 python进阶——设计模式

Chapter12 python进阶——设计模式

 

(三)全局模式(用得不多)

Chapter12 python进阶——设计模式

Chapter12 python进阶——设计模式

 

(四)工厂方法模式:

工厂方法模式去掉了简单工厂模式中工厂方法的静态方法,使得它可以被子类继承。对于python来说,就是工厂被具体工厂继承。这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模式里不同的工厂子类来分担。

抽象的工厂类提供了一个创建对象的方法,也叫工厂方法。

(1)抽象工厂角色:这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。

(2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。

(3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在python中抽象产品一般为父类。

(4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。由一个具体类实现

Chapter12 python进阶——设计模式

Chapter12 python进阶——设计模式