無止境2
一般方法的參數很有可能會發生變化,有可能會增加一個或幾個參數,這樣方法就會不停的改,相應的,程序中所有調用這個方法的代碼也必須跟著修改。如果這個方法在很多地方都被調用,那麼修改這些代碼真是個繁瑣的工作。
用接口或抽象類的好處就是,即使增加或減少幾個參數,這個接口或抽象類不用去修改,這樣這個方法的簽名不會發生變化,所以程序中調用此方法的代碼也不用修改。只修改這個接口或抽象類的實現的類即可。
比如說查詢某個用戶的訂單:
List
{
。。。。。
}
調用的代碼可能是這樣:
string userId = "1111"
var orders = ***.GetOrders(userId);
.....
假如現在需求是通過用戶的名字或地址查詢訂單,則需要修改方法:
List
相應的調用代碼也必須修改成:var orders = ***.GetOrders(userId,userName,address);
如果我們開始方法定義成:
List
{
。。。。。
}
調用的代碼應該是這樣:
IUser user = GetCurrentUser()
var orders = ***.GetOrders(user);
對IUser接口,可實現不同的User類,比如GuessUser,AdminUser,NormalUser等。
使用的代碼幾乎不用改。
IUser user = GetGuessUser()//GetAdminUser()等等
var orders = ***.GetOrders(user);
。
上面那句話說的應該就是這個意思了。
程序你好
作為一名python的web開發者(不會PHP),我沒有聽說過這句話,但是,我希望我的一些看法能夠對你有所幫助 。
在做web開發和程序設計的過程中,我經常會遇到一個問題,就是更改參數,開始的時候,我經常就在一個方法或者函數中直接將這個參數給傳進去。
但是,一到要更改參數的時候,我就很煩,總要替換啥的,於是乎,慢慢的就習慣建一個配置文件的習慣了,我們需要去用到的直接在配置文件裡面取就行,修改也很方便。
在做web開發的時候,見的比較多的要修改路由的情況,其實,跟上面的類似。不過python裡面的解決方法略有區別。