python 接口与归一化设计+抽象类

1.什么是接口

  接口可以理解为自己给使用者来调用自己功能方法的入口。

2.为什么要用接口

(1).可以实现权限控制,比如可以通过接口做一下访问控制,可以允许或者拒绝调用者的一些操作。

(2).降低了使用者的使用难度,使用者只需要知道怎么调用即可,不需要知道里边的具体实现方法。

3.接口的例子

class File:#定义接口
    def read(self): #定接口函数read
        pass

    def write(self): #定义接口函数write
        pass


class Txt(Interface): #文本,具体实现read和write
    def read(self):
        print('文本数据的读取方法')

    def write(self):
        print('文本数据的读取方法')

class Sata(Interface): #磁盘,具体实现read和write
    def read(self):
        print('硬盘数据的读取方法')

    def write(self):
        print('硬盘数据的读取方法')

上述例子就是一个接口类型,子类中的方法与父类的保持一致。但是这种发放并不能强制子类拥有父类中定义的方法,子类可以随便更改函数名称。

 

解决上述方法就用到了“抽象类”

抽象类

import abc  #导入abc模块实现抽象类
class Ifile(metaclass=abc.ABCMeta): #固定写法,类名无所谓,可以随意取.
    @abc.abstractmethod   #定义抽象方法,继承此类的子类中必须有下面的函数,没有就会报错.
    def read(self):
        pass

    @abc.abstractmethod
    def write(self):
        pass

class Txt(Ifile):    #子类继承抽象类 子类中必须要有read跟write方法,没有就会报错.
    def read(self):
        print('这是TXT文件的读')
    def write(self):
        print('这是TXT文件的写..')



class Html(Ifile):
    def read(self):
        print('这是Html文件的读')
    def write(self):
        print('这是Html文件的写..')

t = Txt()  #定义对象
h = Html()
t.read()  #在使用的时候直接使用read方法即可。这样大家就做到了统一化,读文件的时候都用read方法。
h.read()

 

posted @ 2017-08-20 21:27  嘟囔囔小孩  阅读(206)  评论(0编辑  收藏  举报