设计模型入门(接口)
# 链接资料
笔记参考:https://github.com/ThanlonSmith/design-pattern (opens new window)
# 简介
设计模式是对软件设计中普遍存在或反复出向的各种问题所提出的解决方案。每一个设计模式系统地被命名、解释和评价了面向对象系统中一个重要和重复出现的设计。
面向对象
设计模式解决的就是面向对象中的问题。需要指导面向对象的三大特性是 封装、继承和多态
,封装是把数据和方法封装到类中,继承是类之间复用代码,多态在Python中默认支持的,Python是一种多态的语言。
# 设计模式的分类
创建型模式:工厂方法模式、抽象工厂模式、创建者模式、原型模式、单例模式。隐藏底层模块的逻辑,关注怎么创建对象
。
结构型模式:适配器模式、桥模式、组合模式、装饰模式、外观模式、享元模式、代理模式。类之间如何协同工作,应该组成什么结构
。
行为型模式:解释器模式、责任链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式、模板方法模式。关注行为,也就是方法,应该怎样某些行为
。
# 接口
接口是若干抽象方法的集合
。接口的作用是限制实现接口的类必须按照接口给定的调用方式实现这些方法,对高层模块隐藏了类的内部实现。下面通过一个简单的例子来加强对接口的理解:
"""
接口
"""
from abc import abstractmethod, ABCMeta
# 抽象产品角色(Product)
class Payment(metaclass=ABCMeta):
@abstractmethod # 抽象类,表示如果有子类继承这个父类,那么这个方法就必须要实现
def pay(self, money):
pass
# 具体产品角色(Concrete Product)
class Alipay(Payment):
"""支付宝支付"""
def pay(self, money):
print("支付宝支付%d" % money)
# 具体产品角色(Concrete Product)
class WechatPay(Payment):
"""微信支付"""
def pay(self, money):
print("微信支付%d" % money)
a = Alipay()
w = WechatPay()
a.pay(500)
w.pay(500)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
编辑 (opens new window)
上次更新: 2023/05/17, 23:08:21