以下只是舉例!
環境:
1,通用實體庫commonentity,裡面有管理員類
class administrator: entity, iadministrator where tentity:administrator可別暈了,尖括號裡面的administrator就是左邊的那個類,而尖括號前那個,是上面那個泛型類。上面可以看到,我們還有乙個iadministator介面。
2,請假模組。業務邏輯部分針對iadministrator程式設計,因為不知道最終型別,沒辦法利用administrator進行編碼。
3,出差模組。同上,只對iadministator進行編碼。
4,最終專案。它要擴充套件管理員類,於是有
class admin:administrator這個擴充套件的管理員類,多了乙個位址address欄位。
這個時候,需要把請假模組和出差模組整合進來,而這兩個模組,根本不需要關心擴充套件的address欄位,因為它們只需要用到基類裡面的那些欄位和方法就足夠了,但是那兩個模組裡面用的是iadministator介面所代表的物件,必須是最終擴充套件的這個admin類,而不是通用實體庫commonentity裡面的administrator,否則會出很大的問題,例如它們倆是不同的資料表。
現狀:
1,目前採用的方法。請假和出差模組使用administrator類(不是泛型那個),如iadministator admin=administrator.findbyid(123)。這個findbyid裡面,讀取配置檔案,得知真正的管理員類是admin,然後反射呼叫它的方法,所以最終得到的admin實際上是admin的例項,而不是administator的。
2,上面的方法解決了問題,但是還有很多問題。管理員類只是乙個例子,還有很多其它的類需要這樣做,都這樣子使用配置,最後統一起來,就會奇臭無比。
3,假如還有乙個模組,考勤模組,需要用到請假和出差,然後它又要擴充套件請假和出差……(***!)
求助:
求乙個漂亮的解決方案!
FPGA最小系統
專案分享 自製fpga最小系統板 pcb可直接打板 用一顆 很小的fpga fpga開發板剁手,學生狗省錢 丨 資源 賽靈思的zynq器件由其vivado高階綜合設計套件提供支援,包括雙核arm cortex a9,usb 2.0和千兆乙太網。除了zynq還有哪些內嵌arm硬核的fpga?xilin...
小系統上線流程
1.落實系統功能,請示領導做什麼 怎麼做 方案審核 進度匯報 2.討論拓撲方案,申請伺服器,辦事大廳走流程,配鏈路,想網域名稱。3.開發完成後,漏掃,申請公網ip,開公網ip,配置網域名稱。4.上線或者割接前,與涉及到的專案使用負責人充分溝通,向開發維護公司了解專案情況和評估影響 撰寫割接方案供相關...
c 工大租車小系統
本 主要用類的基本操作,涉及類的繼承,構造,屬性等 類的 car.cs using system using system.collections.generic using system.linq using system.text using system.threading.tasks nam...