|
1. 從依賴(lài)倒置說(shuō)起
首先,我們來(lái)看下《敏捷軟件開(kāi)發(fā)》中對(duì)依賴(lài)倒置的說(shuō)明:
a. 高層模塊不應(yīng)該依賴(lài)于低層模塊,二者都應(yīng)該依賴(lài)于抽象。
b. 抽象不應(yīng)該依賴(lài)于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴(lài)于抽象。
我們先拋開(kāi)第二點(diǎn)來(lái)看第一點(diǎn),什么叫高層模塊,什么叫低層模塊。在我理解來(lái)看:高層模塊也就是戰(zhàn)略性模塊,業(yè)務(wù)性模塊。而低層模塊就是戰(zhàn)術(shù)性模塊,細(xì)節(jié)類(lèi)模塊。
先來(lái)看這樣一段代碼:
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知識(shí)庫(kù):老話重彈——再談接口與抽象類(lèi),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。