|
一個外部具體對象的引入,必然會給一個模塊帶來與外部模塊之間的依賴。而具體對象的創(chuàng)建始終是我們無法規(guī)避的。即使我們可以利用設(shè)計模式的工廠方法模式或抽象工廠封裝具體對象創(chuàng)建的邏輯,但卻又再次引入了具體工廠對象的創(chuàng)建依賴。雖然在設(shè)計上有所改進,但沒有徹底解除具體依賴,仍讓我心有戚戚焉。
以一個電子商務(wù)網(wǎng)站的設(shè)計為例。在該項目中要求對客戶的訂單進行管理,例如插入訂單。考慮到訪問量的關(guān)系,系統(tǒng)為訂單管理提供了同步和異步的方式。顯然,在實際應(yīng)用中,我們需要根據(jù)具體的應(yīng)用環(huán)境,決定使用這兩種方式的其中一種。由于變化非常頻繁,因而我們采取了“封裝變化”的設(shè)計思想。譬如,考慮應(yīng)用Strategy模式,因為插入訂單的行為,實則就是一種插入訂單的策略。我們可以為此策略建立抽象對象,如IOrderStrategy接口。
1 public interface IOrderStrategy
2 {
3 void Insert(OrderInfo order);
4 }
it知識庫:解除具體依賴的技術(shù),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。