python解耦
1、需要使用很多不同類中的方法
定義一個虛擬類,讓這個借口類繼承這些類,然后只需要引用這個接口類就可以了。
class Foo1():
def chi(self):
print "chi"
class Foo2():
def he(self):
print "he"
#接口類
class Fooo(Foo1,Foo2):
def func_far(self):
print "func1"
def indexf(Fatherobj):
class shui(Fatherobj):
def haichi(self):
print "haichi"
shuii = shui()
shuii.chi()
indexf(Fooo)
>>>
chi
>>>
2、需要定義一個隨時能調用不同接口類的函數或類
如果程序將入參類寫為固定,那么這個調用類就和其他的類耦合程度太大,不利於維護。
class Foo1():
def foo1(self):
print "foo1"
class Foo2():
def foo2(self):
print "foo2"
class Ft():
def __init__(self,Foo2):
self.f = Foo2()
def exef(self):
self.f.foo2()
ft = Ft(Foo2)
ft.exef()
解耦
class Foo1():
def foo1(self):
print "foo1"
class Foo2():
def foo2(self):
print "foo2"
#Foo2換為一個變量,objc。
class Ft():
def __init__(self,objc):
self.f = objc()
def exef(self):
self.f.foo2()
ft = Ft(Foo2)
ft.exef()
3、需要入參為某個類型
不建議入參寫為固定某個類型,這時需要定義一個上層接口,作為入參的所有接口都繼承這個接口類,入參同樣只需要輸入這個接口類即可。
程序不一定正確只是說明先繼承父類的若干子類,然后再入參設置為父類
#上層接口類
class Fooo():
def func_far(self):
print "func1"
class Foo1(Fooo):
def chi(self):
print "chi"
class Foo2(Fooo):
def he(self):
print "he"
def indexf(Fatherobj):
class shui(Fatherobj):
def haichi(self):
print "haichi"
shuii = shui()
shuii.chi()
indexf(Fooo)
。
