一、设计模式如下
常用的设计模式包含以下内容:
- 简单工厂
- 工厂方法
- 抽象工厂
- 单例模式
二、各类设计模式介绍
1、简单工厂
实例化对象的时候不再使用 new Object()形式,可以根据用户的选择条件来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。
下面通过代码进行举例:
#!encoding=utf-8
'''玩具类'''
#玩具类--基类
class Toy:
def run(self):
print('没法玩')
#飞机--Toy子类
class Air(Toy):
def run(self):
print('飞在天上')
#船--Toy子类
class Ship(Toy):
def run(self):
print('飘在海上')
#汽车--Toy子类
class Car(Toy):
def run(self):
print('跑在路上')
class Simple:
def create(self,name):
#根据name返回对应的类
if name.lower()=='ship':
return Ship()
elif name.lower()=='air':
return Air()
elif name.lower()=='car':
return Car()
else:
return Toy()
if __name__=="__main__":
#通过输入玩具名称获取相对应的类
factory=Simple()
toy=factory.create("air")
#获取类之后使用类的方法
toy.run()
我们只需要在Simple类调用create函数并给出name参数,就会获取得到name对应的类来进行实例化,同时获得对应类的方法,这样做的好处:
- 调用者不需要关心类的实例化是怎么生产出来的,只需要设置参数就能够实现类的实例化
- 将类统一管理,并且相对于直接定义类的实例化来说更加灵活
- 可以减少代码量
- 易于代码维护与管理
但是这种方式的缺陷就是每次增加新的类时,需要进行硬编码(在create函数编写对应的if代码)
简单工厂详细介绍:https://www.runoob.com/design-pattern/factory-pattern.html
2、工厂方法
为了1024徽章先发出来了,后面持续更新...