一、设计模式分类
a、创建型模式
- 简单工厂模式
一、内容
不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。
二、角色
工厂角色(Creator)
抽象产品角色(Product)
具体产品角色(Concrete Product)
三、优点
隐藏了对象创建的实现细节
客户端不需要修改代码
四、缺点
违反了单一职责原则,将创建逻辑集中到一个工厂类中
当添加新产品时,需要修改工厂类代码,违反了开放封闭原则
代码实例:
from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): @abstractmethod def pay(self): pass class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): print('支付宝支付了%s元'%self.money) class Whatpay(Payment): def __init__(self, money): self.money = money def pay(self): print('微信支付了%s元' % self.money) obj = Alipay(100) obj.pay() obj2 = Whatpay(200) obj2.pay()