2013-01-11 37 views
2

比方說,我有一個名爲Man的OO語言對象,而Man有一個屬性name。如果我有一個向這個男士打招呼的函數,我應該發送Man.name作爲參數還是隻發送Man。例如,在python中:處理調用者或被調用者的數據?

def sayHello(Man): 
    print 'hello! ' + Man.name 

def sayHello2(name): 
    print 'hello! ' + name 

哪一個更好?爲什麼?

回答

1

如果您的功能需要名稱,並沒有其他屬性的人,只需發送名稱。原因是減少耦合(比如你不需要知道曼的屬性)。

如果你的函數需要Man的兩個或多個屬性,那麼你應該傳遞這個對象。校長被稱爲「保留整個對象」Martin Fowler的書重構:改進現有代碼的設計

相關問題