一、设计模式与面向对象
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 面向过程
按照制作一件事物的顺序进行开发。
面向对象原则
简单工厂模式
工厂方法模式
抽象工厂模式
建造者模式
单例模式
适配器模式
桥模式
组合模式
外观模式
代理模式
责任链模式