抽象类(接口类)

# python 没有接口这个概念
# 接口类,抽象类: 定义: 制定一个规范
class Alipay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用支付宝支付了{self.money}')


class Jdpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用京东支付了{self.money}')


al = Alipay(500)
al.pay()

jd = Jdpay(500)
jd.pay()


# 第二版  统一化设计

class Alipay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用支付宝支付了{self.money}')


class Jdpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用京东支付了{self.money}')


def pay(obj):
    obj.pay()


a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)
pay(j1)  # 归一化设计

# 第三版  微信支付
from abc import ABCMeta, abstractmethod


class Payment(metaclass=ABCMeta):  # 抽象类(接口类)
    @abstractmethod  # 装饰器
    def pay(self): pass  # 制定了一个规范


class Alipay(Payment):
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用支付宝支付了{self.money}')


class Jdpay(Payment):
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用京东支付了{self.money}')


class Wcpay(Payment):
    def __init__(self, money):
        self.money = money

    def pay1(self):
        print(f'使用微信支付了{self.money}')


def pay(obj):
    obj.pay()


a1 = Alipay(200)
j1 = Jdpay(100)
w1 = Wcpay(300)
w1.pay1()
pay(a1)
pay(j1)  # 归一化设计
# pay(w1)


# 第四版  接口类 抽象类
class Alipay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用支付宝支付了{self.money}')


class Jdpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用京东支付了{self.money}')


class Wcpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(f'使用微信支付了{self.money}')
  1 # python 没有接口这个概念
  2 # 接口类,抽象类: 定义: 制定一个规范
  3 class Alipay:
  4     def __init__(self, money):
  5         self.money = money
  6 
  7     def pay(self):
  8         print(f'使用支付宝支付了{self.money}')
  9 
 10 
 11 class Jdpay:
 12     def __init__(self, money):
 13         self.money = money
 14 
 15     def pay(self):
 16         print(f'使用京东支付了{self.money}')
 17 
 18 
 19 al = Alipay(500)
 20 al.pay()
 21 
 22 jd = Jdpay(500)
 23 jd.pay()
 24 
 25 
 26 # 第二版  统一化设计
 27 
 28 class Alipay:
 29     def __init__(self, money):
 30         self.money = money
 31 
 32     def pay(self):
 33         print(f'使用支付宝支付了{self.money}')
 34 
 35 
 36 class Jdpay:
 37     def __init__(self, money):
 38         self.money = money
 39 
 40     def pay(self):
 41         print(f'使用京东支付了{self.money}')
 42 
 43 
 44 def pay(obj):
 45     obj.pay()
 46 
 47 
 48 a1 = Alipay(200)
 49 j1 = Jdpay(100)
 50 pay(a1)
 51 pay(j1)  # 归一化设计
 52 
 53 # 第三版  微信支付
 54 from abc import ABCMeta, abstractmethod
 55 
 56 
 57 class Payment(metaclass=ABCMeta):  # 抽象类(接口类)
 58     @abstractmethod  # 装饰器
 59     def pay(self): pass  # 制定了一个规范
 60 
 61 
 62 class Alipay(Payment):
 63     def __init__(self, money):
 64         self.money = money
 65 
 66     def pay(self):
 67         print(f'使用支付宝支付了{self.money}')
 68 
 69 
 70 class Jdpay(Payment):
 71     def __init__(self, money):
 72         self.money = money
 73 
 74     def pay(self):
 75         print(f'使用京东支付了{self.money}')
 76 
 77 
 78 class Wcpay(Payment):
 79     def __init__(self, money):
 80         self.money = money
 81 
 82     def pay1(self):
 83         print(f'使用微信支付了{self.money}')
 84 
 85 
 86 def pay(obj):
 87     obj.pay()
 88 
 89 
 90 a1 = Alipay(200)
 91 j1 = Jdpay(100)
 92 w1 = Wcpay(300)
 93 w1.pay1()
 94 pay(a1)
 95 pay(j1)  # 归一化设计
 96 # pay(w1)
 97 
 98 
 99 # 第四版  接口类 抽象类
100 class Alipay:
101     def __init__(self, money):
102         self.money = money
103 
104     def pay(self):
105         print(f'使用支付宝支付了{self.money}')
106 
107 
108 class Jdpay:
109     def __init__(self, money):
110         self.money = money
111 
112     def pay(self):
113         print(f'使用京东支付了{self.money}')
114 
115 
116 class Wcpay:
117     def __init__(self, money):
118         self.money = money
119 
120     def pay(self):
121         print(f'使用微信支付了{self.money}')
122 
123 
124 def pay(obj):
125     obj.pay()
126 
127 
128 a1 = Alipay(200)
129 j1 = Jdpay(100)
130 w1 = Wcpay(300)
131 pay(a1)
132 pay(j1)  # 归一化设计
133 pay(w1)

 

def pay(obj):
    obj.pay()


a1 = Alipay(200)
j1 = Jdpay(100)
w1 = Wcpay(300)
pay(a1)
pay(j1)  # 归一化设计
pay(w1)

  

posted @ 2021-11-07 10:58  余鑫2020  阅读(57)  评论(0)    收藏  举报