有三個類
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...