python接口类,抽象类

# 支付方式不够统一
class QQpay:
    def pay(self, money):
        print('QQ支付了%s钱' % money)

class Alipay:
    def pay(self, money):
        print('支付宝支付了%s钱' % money)

a1 = QQpay()
a1.pay(100)
b1 = Alipay()
b1.pay(200)
# 统一支付方式:归一化设计

class QQpay:
    def pay(self, money):
        print('QQ支付了%s钱' % money)


class Alipay:
    def pay(self, money):
        print('支付宝支付了%s钱' % money)

def pay(obj, money):  # 归一化设计
    obj.pay(money)


a1 = QQpay()
b1 = Alipay()
pay(a1, 100)
pay(b1, 200)
# 狗哥,调离了部门,此时来了一个野生程序员。

class QQpay:
    def pay(self, money):
        print('QQ支付了%s钱' % money)


class Alipay:
    def pay(self, money):
        print('支付宝支付了%s钱' % money)

class Wechat:
    def fuqian(self,money):
        print('微信支付了%s钱' % money)

def pay(obj, money):  # 归一化设计
    obj.pay(money)
    
a1 = QQpay()
b1 = Alipay()
pay(a1, 100)
pay(b1, 200)

c1 = Wechat()
c1.fuqian(300)
# 接口类:就是制定一个规则,让其他人按照我的规则去写程序。 约定俗称规范,但是这个有人还不按照这个执行。
class payment:
    def pay(self,money):
        pass


class QQpay(payment):
    def pay(self, money):
        print('QQ支付了%s钱' % money)


class Alipay(payment):
    def pay(self, money):
        print('支付宝支付了%s钱' % money)


class Wechat(payment):
    def fuqian(self, money):
        print('微信支付了%s钱' % money)

def pay(obj, money):  # 归一化设计
    obj.pay(money)
# 强制指定规范:
from abc import ABCMeta, abstractmethod
class payment(metaclass=ABCMeta):
    @abstractmethod
    def pay(self,money):
        pass
class QQpay(payment):
    def pay(self, money):
        print('QQ支付了%s钱' % money)

class Alipay(payment):
    def pay(self, money):
        print('支付宝支付了%s钱' % money)


class Wechat(payment):
    def fuqian(self, money):
        print('微信支付了%s钱' % money)

def pay(obj, money):  # 归一化设计
    obj.pay(money)

w = Wechat()

总结:

接口类其实就是遵循我的一些代码规范而做的

posted @ 2018-11-20 11:06  小菜鸟111  阅读(204)  评论(0编辑  收藏  举报