高度解耦合

2021-10-01 15:08:38 字數 2226 閱讀 5678

有三個類

callback

存放委託,可以在別的方法中傳遞不同引數型別和個數的方法

public

delegate

void

callback()

;public

delegate

void

callback

<

t>

(t arg)

;public

delegate

void

callback

x>

(t arg1,

x arg2)

;public

delegate

void

callback

x,y>

(t arg1,

x arg2,

y arg3)

;public

delegate

void

callback

x,y,

z>

(t arg1,

x arg2,

y arg3,

z arg4)

;public

delegate

void

callback

x,y,

z,w>

(t arg1,

x arg2,

y arg3,

z arg4,

w arg5)

;

eventdefine

存放事件碼,這個系統中是用dictionary集合來儲存,每個事件碼對映乙個方法。

public

enum eventdefine

eventcenter

事件中心,定義新增***的方法

public

class

eventcenter

delegate d = m_eventtable[eventtype];if

(d !=

null

&& d.

gettype()

!= callback.

gettype()

)新增不同型別的委託,當前事件所對應的委託是,要新增的委託型別為"

, eventtype, d.

gettype()

, callback.

gettype()

));}

}private

static

void

onlistenerremoving

(eventdefine eventtype,

delegate callback)

沒有對應的委託"

, eventtype));

}else

if(d.

gettype()

!= callback.

gettype()

)移除不同型別的委託,當前委託型別為,要移除的委託型別為"

, eventtype, d.

gettype()

, callback.

gettype()

));}

}else

", eventtype));

}}private

static

void

onlistenerremoved

(eventdefine eventtype)

}//no parameters

public

static

void

addlistener

(eventdefine eventtype,

callback callback)

//no parameters

public

static

void

addlistener

(eventdefine eventtype,

callback callback)

//no parameters

public

static

void

broadcast

(eventdefine eventtype)

else

對應委託具有不同的型別"

, eventtype));

}}}

耦合還是解耦合?

我們的許多設計思想中很多地方都體現了解耦合的思想,這是 b 應對易於變化 b 的一種很好的解決手段,而在這些手段中最重要的解決方法就是 b 新增中間層 b 所謂新增中間層 比如我們常見的面向介面程式設計,其實就是新增了乙個中間的層次,遮蔽掉了一些變化,還有就是我們常用的設計模式,什麼 啊,faced...

耦合,緊耦合,松耦合,解耦

一 耦合 耦合是兩個或多個模組之間的相互關聯。在軟體工程中,兩個模組之間的耦合度越高,維護成本越高。因此,在系統架構的設計過程中,應減少各個模組之間的耦合度,以提高應用的可維護性。二 緊耦合 緊耦合架構本質是client server的模型,如下圖所示 優點是 架構簡單 設計簡單 開發周期短 能夠快...

資料庫耦合 解耦

隨著業務越來越複雜,資料量越來越大,併發量越來越大,資料庫的效能越來越低。好不容易找運維申請了兩台機器,讓dba部署了幾個例項,想把一些業務庫拆分出來,卻發現拆不出來,擴不了容,尷尬!因為資料庫強關聯在一起,無法通過增加資料庫例項擴容,就是乙個耦合的典型案例。場景還原 有乙個公共使用者資料庫db u...