Python:设计模式

发布时间 2023-12-17 21:00:58作者: 张一默

一、设计模式与面向对象

1.1 设计模式

  软件设计阶段针对反复出现的问题提出的统一解决方案。每类问题的解决方案都被系统的命名。

1.2 面向对象

  按照一件事的组成元素分别制作进行组装。

1.2.1 三大特性

  封装:将对象封装为类,将对象数据操作封装为函数。封装分为类内/类外,私有/公有

  继承:父类与子类,表示对象与对象之间的关系

  多态:子类重写父类函数,C++中声明为virutal。python本身是多态语言,只管实现,不用关注细节。

  接口:抽象类,规定继承抽象类的实现行为。

from abc import ABCMeta, abstractmethod

# abstract class
class Payment(metaclass=ABCMeta):
     # 定义接口 pay(self, money)
    @abstractmethod
    def pay(self, money):  # 接口:规定了A_Pay、B_Pay必须实现这个方法。多态的体现之一就是接口在不同子类中的多种实现,这种性质为多态性。
        pass

class A_Pay(Payment): # 封装:将对象A的行为及属性封装为类
    # 实现接口 pay(self, money)
    def pay(self, money):
        print("A 支付 %d" % money)

class B_Pay(Payment): # 继承Payment这个接口(抽象类)
     # 实现接口 pay(self, money)
    def pay(self, money):
        print("B 支付 %d" % money)

p = A_Pay()
n = B_Pay()
p.pay(100)
n.pay(100)

1.3 面向过程

  按照制作一件事物的顺序进行开发。

面向对象原则

简单工厂模式

工厂方法模式

抽象工厂模式

建造者模式

单例模式

适配器模式

桥模式

组合模式

外观模式

代理模式

责任链模式