Python 3 接口與歸一化設計

1、接口與歸一化設計:

1.歸一化讓使用者無需關心對象的類是什麼,只須要知道這些對象都具有某些功能就能夠了,這極大地下降了使用者的使用難度。java

2.歸一化使得高層的外部使用者能夠不加區分的處理全部接口兼容的對象集合。python

2、繼承的兩種用途:

一、繼承基類的方法,而且作出本身的改變或者拓展(代碼重用):實踐中,繼承的這種用途意義並非很大,甚至經常是有害的,由於他使得子類與基類出現強耦合。函數

二、聲明某個子類兼容與某基類,定義一個接口類(模仿java的interface),接口類中定義了一些接口名(就是函數名)且功能,子類繼承接口類,並未實現接口類,而且實現接口類,而且實現接口類中的功能。spa

class Interface:#定義接口Interface類來模仿接口的概念,python中壓根就沒有interface關鍵字來定義一個接口。
    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 du(self):
        print('硬盤數據的讀取方法')

    def write(self):
        print('硬盤數據的寫方法')

class Process(Interface):
    def read(self):
        print('進程數據的讀取方法')

    def xie(self):
        print('進程數據的寫方法')



t=Txt()
s=Sata()
p=Process()


t.read()
s.read()
p.read()


import abc
class Interface(metaclass=abc.ABCMeta):#定義接口Interface類來模仿接口的概念,python中壓根就沒有interface關鍵字來定義一個接口。
all_type='file'
@abc.abstractmethod
def read(self): #定接口函數read
pass

@abc.abstractmethod
def write(self): #定義接口函數write
pass


class Txt(Interface): #文本,具體實現read和write
def read(self):
pass

def write(self):
pass
t=Txt()

print(t.all_type)
相關文章
相關標籤/搜索