g( LinkedList list )
{
list.add( ... );
g2( list )
}
假設一個對于快速查詢的需求被提出,以至于這個LinkedList不能夠解決。你需要用HashSet來代替它。在已有代碼中,變化不能夠局部化,因為你不僅僅需要修改f()也需要修改g()(它帶有LinkedList參數),并且還有g()把列表傳遞給的任何代碼。象下面這樣重寫代碼:
f()
{
Collection list = new LinkedList();
//...
g( list );
}
g( Collection list )
{
list.add( ... );
g2( list )
}
文章來源于領測軟件測試網 http://www.kjueaiud.com/