接口的定义;
接口: 若干抽象方法的集合。
作用:
1- 限制实现接口的 类, 必须按照接口 给定的 调用方式 实现这些方法;
2- 对高层模块隐藏了类的内部实现;
统一 所有调用某一方法的 方式, 即统一调用该方法时的所需要的形参;
定义一个类A, 该类实现功能是,给出一个方法的名称;
但具体的内容, 留给继承他的类去实现;
所有继承类A 的 其他类,必须实现类A 中 的对应的那个方法;
或者 在Python 中, 使用抽象方法;
定义一个抽象类, 该类中有抽象方法 @abstractmethod;
class Payment:
def pay(self, money):
raise NotImplementedError
from abc import ABCMeta, abstractmethod
class Payment(metaclass= ABCMeta ):
# abstract class
@abstractmethod
def pay(self, money):
pass
class Alipay(Payment):
def pay(self, money):
print("Alipay paid: %d RMB" % money)
class WechatPay(Payment):
def pay(self, money):
print("Wechat paid: %d RMB" % money)
p = Alipay()
p.pay(100)
class LandAnimal(metaclass = ABCMeta):
@abstractmethod
def walk(self):
pass
class WaterAnimal(metaclass= ABCMeta):
@abstractmethod
def swim(self):
pass
class SkyAnimal(metaclass= ABCMeta):
@abstractmethod
def fly(self):
pass
class Tiger(LandAnimal):
def walk(self):
print( "tiger walk")
class Frog(LandAnimal, WaterAnimal):
pass
设计模式 三大类型
设计模式:
创建型模式(5 种): 工厂方法模式, 抽象工厂模式; 创建者模式; 原型模式; 单列模式;
结构型模式 (7 种): 适配器模式; 桥模式; 组合模式; 装饰模式; 外观模式;享元模式; 代理模式;
行为型模式( 11 种): 解释器模式; 责任链模式; 命令模式; 迭代器模式; 中介者模式;备忘录模式; 观察者模式; 状态模式; 策略模式; 访问者模式; 模板方法模式;