日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解.NET類的設(shè)計問題

.NET類的問題,比較常見。但是對于設(shè)計方面,大家可能接觸得很多,不過具體的問題可能不經(jīng)意間就略過了。本文將結(jié)合作者自己的開發(fā)里程,簡述.NET類的設(shè)計問題。

創(chuàng)新互聯(lián)是專業(yè)的鹽山網(wǎng)站建設(shè)公司,鹽山接單;提供做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行鹽山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

雖然搞.NET已經(jīng)有N年,好像是從C#出生就開始了??墒且驗橹皇菢I(yè)余,只是愛好,都是自摸的,到現(xiàn)在連個.NET類都設(shè)計不好,很是郁悶??!還好,現(xiàn)在知道有博客園這個地方來學習解決問題了。

本人閑著沒事干,于是想設(shè)計一個超級平臺來協(xié)助處理日常工作、生活、學習、娛樂等各方面的問題,而且想采用最新最快捷的技術(shù),比如WPF、Silerlight、ORM等。于是開始著手,這幾天就碰到了這樣的一個問題,也許我這樣做本身就是問題,只有請各位大俠指點。

現(xiàn)在有一消費類Expense用于消費記賬,其中它需要用到一個賬戶Account來支付。可用于支付帳戶的類型有信用卡CreditCard、現(xiàn)金Cash、支票Check等等。

每次記賬,我需要將所使用的賬戶信息存儲起來以備查詢或統(tǒng)計,于是Expense需要有個Account的屬性。

我這里想了兩個方案,一個是將Expense的Account設(shè)計為接口或抽象類,而CreditCard等一干賬戶類型都實現(xiàn)或繼承于它。二是設(shè)計Expense的Account為一個類,而這個Account類有個Category屬性,這個屬性設(shè)計為接口或抽象類,然后CreditCard繼承于Category。

我這里最不好解決的問題是將要保存的信息存儲到像MS SQL Server這樣的關(guān)系型數(shù)據(jù)庫中,再有不好解決的問題是如何從數(shù)據(jù)中取回并生成相應對象的問題。比如,如果用第二種Account表的Category字段存儲的內(nèi)容是什么呢?如果將它設(shè)置成賬戶類型的名稱,如CreditCard,然后子表CreditCard關(guān)聯(lián)到父表Account倒可解決存儲的問題,可是取回時又成問題了,因為CreditCard的數(shù)據(jù)無法恢復。

以下是我設(shè)計的數(shù)據(jù)庫實體圖

還有一個類似的問題,就是中國的行政區(qū)劃。

中國的區(qū)劃比較復雜(整個世界的都是,中國更甚),是一個不規(guī)則的組織結(jié)構(gòu)或者樹。

我是這么考慮的:

1.最頂層的是國家級,其屬性有名字、首都、語言、文字、貨幣......

2.接著是省一級的行政單位(省、自治區(qū)、直轄市,香港也算這一級,可是有貨幣屬性,文字也不一樣),其屬性有的有省會(直轄市又沒有)、國家...

3.然后是市這一級(市、自治州),屬性有名稱、省、地理坐標...

4.縣一級(縣、市、區(qū)、旗、自治縣等等...——復雜吧,名稱很多,中國特色),屬性有名稱、市(這里面還有省直接管轄的,就不好搞了)

5.鄉(xiāng)一級(鄉(xiāng)、鎮(zhèn)、街道......)

6.村一級(居委會.....)   

開始我設(shè)計了六個類,后來想如果外國人加進來怎么辦(我是設(shè)計聯(lián)系人的時候要用到地址,還有在GIS地圖里要用到),我所了解的美國好像不是這個結(jié)構(gòu)的。于是我就將行政區(qū)設(shè)計成一個類District,其中有個屬性為抽象或接口類型DistrictCategory,還有Name(string)、Capital(District)、Higher(District,上級)等屬性,然后上面說的6種類型的行政區(qū)Country、Province、City、County等等都繼承自DistrictCategory,它們包含自己獨特的屬性。比如在國家和市這一級里有電話區(qū)號,村有郵政編碼等等屬性。行政區(qū)之間的關(guān)系由其District類型的Higher屬性來確定。

這里我也遇到了一個持久化和取回的問題,都與DistrictCategory類型的Category屬性有關(guān)。首先是持久化,這里要設(shè)計7個數(shù)據(jù)庫表,我想省事用O/R框架好像不行,對象存儲時要根據(jù)不同的類別存儲到不同的表里。接著是取回的問題,我根據(jù)一個District的Name屬性查詢到了這個相應的記錄,可是我無法知道其相關(guān)的屬性到哪個表示類型的表里面去找,至少不能用程序表達。

示例如下:

  
  
  
  1. District china = new District();   
  2. china.Name = "中華人民共和國";   
  3. Country country = new Country();   
  4. country.Abbreviation = "PRC";   
  5. china.Category = country;   
  6. District zhejiang = new District();   
  7. zhejiang.Name = "浙江";   
  8. Province pro = new Province();   
  9. pro.Type = ProvinceType.省;   
  10. zhejiang.Category = pro;   
  11. zhejiang.HigherLevel = china;  

如果要是取回,我是找到了浙江這條記錄,可是程序如何知道


新聞名稱:詳解.NET類的設(shè)計問題
鏈接分享:http://m.5511xx.com/article/dpjicgh.html