|
1. 從依賴倒置說起
首先,我們來看下《敏捷軟件開發(fā)》中對依賴倒置的說明:
a. 高層模塊不應該依賴于低層模塊,二者都應該依賴于抽象。
b. 抽象不應該依賴于細節(jié),細節(jié)應該依賴于抽象。
我們先拋開第二點來看第一點,什么叫高層模塊,什么叫低層模塊。在我理解來看:高層模塊也就是戰(zhàn)略性模塊,業(yè)務性模塊。而低層模塊就是戰(zhàn)術性模塊,細節(jié)類模塊。
先來看這樣一段代碼:
class Person
{
private Mouth mouth;
public Person(Mouth mouth)
{
this.mouth = mouth;
}
/// <summary>
/// 吃飯
/// </summary>
public void Eat()
{
if (mouth == null)
{
throw new NullReferenceException();
}
mouth.OpenMouth();
FillMouthWithFood();
mouth.CloseMouth();
}
private void FillMouthWithFood(){ }
}
class Mouth
{
/// <summary>
/// 張嘴
/// </summary>
public void OpenMouth() { }
/// <summary>
/// 閉嘴
/// </summary>
public void CloseMouth() { }
}
it知識庫:老話重彈——再談接口與抽象類,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。