python解耦


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)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM