偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#一步一步教你如何去寫面向?qū)ο蟠a

開發(fā) 后端
這是一篇文字較多的文章,建議您仔細(xì)閱讀,因?yàn)樗鼘⑼暾故緲?gòu)建一個(gè)面向?qū)ο蟠a的過程,當(dāng)然這個(gè)思想過程是我個(gè)人的過程,每個(gè)人有自己思考的方式方法,我的僅供參考。

本文以“家庭”為例子,演示如何使用面向?qū)ο笏季S去編寫代碼。

這是一篇文字較多的文章,建議您仔細(xì)閱讀,因?yàn)樗鼘⑼暾故緲?gòu)建一個(gè)面向?qū)ο蟠a的過程,當(dāng)然這個(gè)思想過程是我個(gè)人的過程,每個(gè)人有自己思考的方式方法,我的僅供參考。

一、編寫面向?qū)ο?,首先要?gòu)思

構(gòu)思一般隨意,你可以在自己腦海中構(gòu)思,也可以借助專業(yè)的UML來構(gòu)思,又或者借助紙筆構(gòu)思,總之,一切隨意,只要你喜歡。

那么下面這張圖,是我在紙上畫的構(gòu)思:

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

二、形成你的思路

通過構(gòu)思,你可以慢慢的理清、形成自己的代碼思路。

回到“家庭”這個(gè)例子,我當(dāng)時(shí)是這么思考的:

家庭,就要有家庭成員,所以,我可能會(huì)有一個(gè)IMember的接口。

然后我想到家庭成員之間存在一定的關(guān)系,比如父與子、母與子等關(guān)系,于是有了IRelation接口。

接著我就想到了家庭屬性,家庭應(yīng)該是獨(dú)特的,自己的定義,所以就有了Family,有了Family,我就想到了應(yīng)該抽象成IFamily,而IFamily很可能會(huì)有家庭名稱、人員列表等屬性或者方法定義。

再然后我回顧之前的思路,想到關(guān)系會(huì)有多種類型,它可能會(huì)是個(gè)枚舉,所以就有RelationTypes枚舉對象。

那有了關(guān)系,可能需要一個(gè)關(guān)系管理類來管理它。所以,我就有了RelationManager類。

最后我又思考到了家庭成員,每個(gè)成員都有自己的個(gè)性。而個(gè)性是復(fù)雜,不一定是單一的,比如有些成員好動(dòng)而熱情,比如爸爸面冷心熱等。于是我想個(gè)性應(yīng)該是個(gè)具有Flags標(biāo)簽的枚舉,允許一個(gè)成員具有多重個(gè)性。

三、檢查回顧,并理解你的需求是否滿足

我們在工作中,對于一個(gè)功能開發(fā)項(xiàng),它首要保證的是實(shí)現(xiàn)業(yè)務(wù)需求,所以,我們在做了簡單的建模后(構(gòu)思即是建模的過程),需要結(jié)合實(shí)際,看是否滿足需要。

那么我們看“家庭”這個(gè)例子,由于我是舉例子,所以它目前的簡單建??赡苁钦_的。暫時(shí)也不需要加其它的需求了。

但現(xiàn)在覺得沒有問題的建模,在實(shí)際編寫代碼后,可能會(huì)面臨實(shí)際項(xiàng)目中,我們尚未考慮到的點(diǎn),這時(shí)就需要不斷迭代建模。直到你的思維準(zhǔn)確為止。

四、關(guān)于對象的方法或者屬性

我個(gè)人的習(xí)慣是簡單建模出整體框架后,就開始寫代碼了。

可能有的人,做事較為細(xì)致,在構(gòu)建階段,就會(huì)想要事先定義好每一個(gè)對象的方法或者屬性,這也是可以的??茨?xí)慣和喜歡。

五、編碼,我們先寫關(guān)系代碼

1.先定義成員關(guān)系接口

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

2.定義成員關(guān)系類型的枚舉

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

3.定義關(guān)系創(chuàng)建接口

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

這里要稍微注意下,這與我的簡單建模規(guī)劃的關(guān)系思想有些不同,增加了關(guān)系創(chuàng)建接口。所以說,我們在實(shí)際編碼過程中,針對業(yè)務(wù)的情況會(huì)有偏移,需要進(jìn)行重構(gòu)建模。

4.定義成員關(guān)系接口的實(shí)現(xiàn)類

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

這里要特別注意的是,我這里將實(shí)現(xiàn)類定義成internal,這就意味著,除了我們自己外,外部調(diào)用我們api的人,也就是外部程序員引用我們的dll的話,是無法直接new一個(gè)Relation對象的,因?yàn)槲覀儼阉x成了內(nèi)部類。這樣就可以規(guī)范外部調(diào)用者的行為,指定了他如果想要實(shí)例化這個(gè)Relation類的話,必須通過其它途徑來實(shí)現(xiàn)。

5.定義關(guān)系創(chuàng)建類

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

這個(gè)就是別人想要?jiǎng)?chuàng)建關(guān)系時(shí),所必須通過的途徑。因?yàn)樗麩o法實(shí)例化Relation類,只能通過我的RelationBuilder對象的Create()方法來創(chuàng)建,這就規(guī)范了使用我們api的人的行為。

六、編碼,我們編寫家庭成員和個(gè)性的代碼

1.家庭成員的接口定義

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

我們會(huì)看到家庭成員接口只定義了全名和性別2個(gè)屬性,但是家庭成員是有個(gè)性的,為什么不放在一起寫呢?這就是面向?qū)ο蟮慕涌诟綦x原則,你可以參考我的前面文章,有一篇單獨(dú)講“接口隔離原則”的。

2.家庭成員的個(gè)性枚舉,注意個(gè)性是多重的,所以,我們的枚舉要定義成Flags

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

3.然后我們定義一個(gè)家庭成員的個(gè)性接口

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

4.最后,我們來定義家庭成員的實(shí)現(xiàn)類Member.cs

 

C#一步一步教你如何去寫面向?qū)ο蟠a

 

C#一步一步教你如何去寫面向?qū)ο蟠a

注意看這個(gè)成員實(shí)現(xiàn)類,它實(shí)現(xiàn)了兩個(gè)接口,分別是IMember和ICharacter。我們定義了它的構(gòu)造函數(shù),帶有fullName和sex兩個(gè)參數(shù),所有public的公開屬性都是只讀的,這意味著別人只能訪問而無法修改。開放了設(shè)置個(gè)性的方法SetCharacter()。

好了,由于篇幅很長了,所以,關(guān)于家庭的接口,我就不再繼續(xù)寫了。相信你通過上面兩個(gè)例子,也已經(jīng)學(xué)會(huì)了,如何去編寫面向?qū)ο蟮拇a思路了。

如果你能學(xué)會(huì)并運(yùn)用這個(gè)思路,那么我很為你高興。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2009-07-06 19:29:37

云計(jì)算私有云服務(wù)器虛擬化

2018-03-07 15:24:41

PythonMySQL

2024-07-22 11:43:28

LVMPnetLab網(wǎng)絡(luò)

2015-07-30 09:35:24

滑動(dòng)返回代碼

2009-12-17 08:57:28

Windows 7磁盤分區(qū)

2022-08-29 15:19:09

CSS煙花動(dòng)畫

2017-12-25 11:50:57

LinuxArch Linux

2024-12-02 14:48:30

Docker鏡像文件

2024-09-13 15:20:46

2024-11-18 17:12:18

C#編程.NET

2025-04-08 09:30:00

SeataDocker分布式系統(tǒng)

2024-11-01 11:40:11

2012-03-22 10:33:33

思杰XenDesktop

2017-09-28 09:40:36

圖像分類準(zhǔn)確率

2017-08-24 08:31:41

2017-11-29 11:14:52

離線緩存URL協(xié)議緩存

2018-06-11 15:30:12

2011-06-07 16:03:48

匿名SQL Server

2013-03-18 16:09:27

JavaEEOpenfire

2019-09-18 07:20:34

深度學(xué)習(xí)人臉識(shí)別人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)