Spring系列 3 3 乙個較為完善的模型

2021-05-27 10:06:50 字數 1007 閱讀 6603

1、首先,因為委託的目的其實是為了與附加責任類進行互動,而掛接了委託的附加責任類才會收到訊息,從這點來看,是乙個非常典型的觀察者模式應用場景,因此我們覺得引入這個模式,好處是觀察註冊有專門的類來負責管理,在這裡是**類行使這個責任(後面的模型會轉到**類工廠),二是附加責任類以類的身份參與,而不再是簡單的掛接委託,這樣做的好處是目標類可以更多的了解附加責任類,可以在需要的時候對觀察者身份進行鑑別,雖然少些自由,但多了乙份安全。

public inte***ce imethodexecnotify

2、因為我們有7個切入點,我們需要7種介面,當然實際用的時候,可以簡化到3-4個,沒必要搞這麼多。另外一種方法,就是用乙個介面,但提供7個登記點(註冊方法),或者更為簡潔的做法是提供乙個介面,註冊方法也只有乙個,但註冊方法增加乙個主題型別的引數(在spring中叫通知型別);

public enum methodsubjecttype

//觀察者註冊

public void registeroberver(imethodexecnotify observer,methodsubjecttype)

3、這個觀察者模式,主題當然是**類,觀察者就是附加責任的類。為了應用這個模式,我們需要對主題和觀察者之間的通訊做乙個約定,也就是需要定義乙個介面,這個介面必須包含乙個通知方法,主題必須知道這個方法來通知(呼叫)觀察者,而觀察者必須實現這個介面,來收取主題傳送的訊息。乙個類實現了這個介面,才能作為觀察者注入主題,這從某種意義上來說,就是一種附加責任類的身份鑑別。

///

/// **類,從aclass繼承.

///

public class proxyaclass1 : aclass

public void registeroberver(imethodexecnotify observer,methodsubjecttype)

public void removeoberver(imethodexecnotify observer)

..............................待續

Spring系列 3 3 乙個較為完善的模型

1 首先,因為委託的目的其實是為了與附加責任類進行互動,而掛接了委託的附加責任類才會收到訊息,從這點來看,是乙個非常典型的觀察者模式應用場景,因此我們覺得引入這個模式,好處是觀察註冊有專門的類來負責管理,在這裡是 類行使這個責任 後面的模型會轉到 類工廠 二是附加責任類以類的身份參與,而不再是簡單的...

較為複雜的乙個linq語句

作為乙個初學者,這個句子花了我好大的力氣才寫出來,寫出來是次要的,重要的是又學到了一點新的用法。var query from gb in objectcontext.goodsclose back where gb.s sf comid gb.s month month join gw in 類似子...

乙個ModelSim報告的較為隱蔽的埠不匹配錯誤

錯誤資訊 error vsim 3389 port not found in the connected module 1st connection 原因 埠不對應!但是此次埠不對應的原因比較隱蔽 在quartus的.qsf中含有兩個同名但不同路徑的verilog原始檔,埠缺失的那個在前,埠完整的那...