1. 概述
1.1 概念1.2 代码1.3 结果 2. 面向对象设计原则
2.1 设计原则2.2 设计模式分类
1. 概述 1.1 概念设计模式:对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。每一个设计模式系统地命名,解释和评价了面向对象系统中一个重要的和重复出现的设计
推荐书籍:设计模式:可复用面向对象软件的基础面向对象三大特性:封装,继承,多态接口:若干抽象方法的集合;作用:限制实现接口的类必须按照接口给定的调用方式实现这些方法,对高层模块隐藏了类的内部实现。 1.2 代码
# 1.导入抽象基类,让子类必须要实现该方法,
# 只是抽象方法,并不实现功能,只能继承,不能被实例化
from abc import ABCmeta, abstractmethod
# 2.定义接口类
# Payment 是一个抽象类,定义了一个pay的抽象方法
# 通过抽象方法,可以规范其子类在用此方法的接口规范
class Payment(metaclass=ABCmeta):
@abstractmethod
# 定义接口抽象方法
def pay(self, money):
pass
# 3.定义子类Alipay来继承接口抽象类
class Alipay(Payment):
# 子类继承父类方法,接口保持一致
def pay(self, money):
print("alipay=%d" % money)
# 4.定义子类Wechatpay来继承接口抽象类
class WechatPay(Payment):
def pay(self, money):
print("wechatpay=%d" % money)
# 5.实例化子类对象
alipay_test = Alipay()
wechat_test = WechatPay()
# 6.调用子类的方法
alipay_test.pay(200)
wechat_test.pay(100)
1.3 结果
alipay=200 wechatpay=1002. 面向对象设计原则 2.1 设计原则
开放封闭原则:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭,即软件实体应尽量在不修改原有代码的情况下进行扩展。里氏替换原则:所有引用父类的地方必须能透明地使用其子类的对象依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。换言之,要针对接口编程,而不是针对实现编程。接口隔离原则:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口单一职责原则:不要存在多于一个导致类变更的原因,通俗的说,一个类只负责一项职责 2.2 设计模式分类
创新型模式(5种):工厂方法模式,抽象工厂模式,创建者模式,原型模式,单例模式结构型模式(7种):适配器模式,桥模式,组合模式,装饰模式,外观模式,享元模式,代理模式行为型模式(11种):解释器模式,责任链模式,命令模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略模式,访问者模式,模板方法模式



