日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【求助】小系统组成大系统所遇到的问题

發(fā)布時間:2023/12/13 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【求助】小系统组成大系统所遇到的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??? 以下只是舉例!

?

環(huán)境:

??? 1,通用實體庫CommonEntity,里面有管理員類

class Administrator<TEntity> : Entity<TEntity>, IAdministrator where TEntity:Administrator<TEntity>{

static TEntity Login(String username, String password);

static IAdministator FindByID(Int32 id);

static IAdministator FindByName(String name);

}

??????? 這是一個泛型類,然后有個默認的管理員類

class Administrator:Administrator<Administrator>{}

??????? 可別暈了,尖括號里面的Administrator就是左邊的那個類,而尖括號前那個,是上面那個泛型類。上面可以看到,我們還有一個IAdministator接口。

?

??? 2,請假模塊。業(yè)務(wù)邏輯部分針對IAdministrator編程,因為不知道最終類型,沒辦法利用Administrator<TEntity>進行編碼。

??? 3,出差模塊。同上,只對IAdministator進行編碼。

?

??? 4,最終項目。它要擴展管理員類,于是有

class Admin:Administrator<Admin>{

public String Address{get;set;}

}

??????? 這個擴展的管理員類,多了一個地址Address字段。

??????? 這個時候,需要把請假模塊和出差模塊集成進來,而這兩個模塊,根本不需要關(guān)心擴展的Address字段,因為它們只需要用到基類里面的那些字段和方法就足夠了,但是那兩個模塊里面用的是IAdministator接口所代表的對象,必須是最終擴展的這個Admin類,而不是通用實體庫CommonEntity里面的Administrator,否則會出很大的問題,例如它們倆是不同的數(shù)據(jù)表。

?

現(xiàn)狀:

??? 1,目前采用的方法。請假和出差模塊使用Administrator類(不是泛型那個),如IAdministator admin=Administrator.FindByID(123)。這個FindByID里面,讀取配置文件,得知真正的管理員類是Admin,然后反射調(diào)用它的方法,所以最終得到的admin實際上是Admin的實例,而不是Administator的。

??? 2,上面的方法解決了問題,但是還有很多問題。管理員類只是一個例子,還有很多其它的類需要這樣做,都這樣子使用配置,最后統(tǒng)一起來,就會奇臭無比。

??? 3,假如還有一個模塊,考勤模塊,需要用到請假和出差,然后它又要擴展請假和出差……(你懂的!)

?

求助:

??? 求一個漂亮的解決方案!

轉(zhuǎn)載于:https://www.cnblogs.com/nnhy/archive/2011/07/26/2117054.html

總結(jié)

以上是生活随笔為你收集整理的【求助】小系统组成大系统所遇到的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。