欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Unity游戲開(kāi)發(fā)中設(shè)計(jì)模式的示例分析

這篇文章主要介紹了Unity游戲開(kāi)發(fā)中設(shè)計(jì)模式的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為宿城企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)宿城網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

1.設(shè)計(jì)模式是什么

首先我們要知道,設(shè)計(jì)模式是按照了“面向?qū)ο笤O(shè)計(jì)的原則”,強(qiáng)調(diào)了以類、對(duì)象、繼承、組合作為軟件設(shè)計(jì)分析的方式,提出了同類問(wèn)題的解決方案,并主要滿足了以下幾點(diǎn)要求

  • 解決一再出現(xiàn)的問(wèn)題

  • 提出解決一般化問(wèn)題的方案

  • 使解決方案可以重復(fù)使用

簡(jiǎn)而言之,設(shè)計(jì)模式重點(diǎn)在于“模式”二字,它如同開(kāi)加盟店時(shí),提供了一套可重復(fù)使用的策略,從選址、裝修、供貨渠道等,并且可以快速擴(kuò)張。

同理當(dāng)軟件開(kāi)發(fā)者遇到相同問(wèn)題時(shí),不必再思考如分析和設(shè)計(jì),可以從設(shè)計(jì)模式中直接找到對(duì)應(yīng)的解決方法直接使用。這樣一來(lái),既縮短了開(kāi)發(fā)時(shí)間,又加強(qiáng)了軟件的穩(wěn)定性和維護(hù)性。

2.游戲開(kāi)發(fā)與設(shè)計(jì)模式

在游戲開(kāi)發(fā)中,我們會(huì)面臨很多問(wèn)題,如下

  • 需要一個(gè)極其穩(wěn)定的框架來(lái)承載千萬(wàn)級(jí)用戶

  • 不斷增加的游戲系統(tǒng)

  • 對(duì)現(xiàn)有游戲功能的修改

  • 敏捷開(kāi)發(fā)

這時(shí),我們便需要用到設(shè)計(jì)模式,因?yàn)樗窍热说闹腔邸⑹且呀?jīng)被驗(yàn)證過(guò)的模式、不必思考新的解決方案。

設(shè)計(jì)模式已經(jīng)成為了軟件設(shè)計(jì)領(lǐng)域的共同語(yǔ)音,所以他還可以給我們減少人與人之間溝通的誤解,可以直接指明該游戲系統(tǒng)是用了什么設(shè)計(jì)模式,對(duì)于小型的游戲團(tuán)隊(duì),更是提升了系統(tǒng)的穩(wěn)定性和擴(kuò)展性。

3.七大設(shè)計(jì)原則

單一職責(zé)原則

這個(gè)原則強(qiáng)調(diào)的是“當(dāng)設(shè)計(jì)封裝一個(gè)類時(shí),該類應(yīng)該只負(fù)責(zé)一件事”

說(shuō)起來(lái)好像很簡(jiǎn)單,實(shí)際上對(duì)功能的劃分通常也是開(kāi)發(fā)者最頭疼的一件事。

解決方案就是對(duì)類進(jìn)行不斷的重構(gòu),將部分功能抽成新的類,再利用組合的方式將新的類加入到原來(lái)的類中,慢慢的就會(huì)變成一個(gè)類只負(fù)責(zé)單一功能的實(shí)現(xiàn)。

開(kāi)閉原則

這個(gè)原則強(qiáng)調(diào)的是“一個(gè)類應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉”

具體來(lái)說(shuō),對(duì)于已經(jīng)完成測(cè)試或者上線運(yùn)營(yíng)的功能,我們不應(yīng)該再修改這個(gè)類的任何接口或者實(shí)現(xiàn)內(nèi)容,但是應(yīng)該對(duì)功能的增加保持開(kāi)放。

為了滿足這個(gè)原則的要求,我們需要將“方法”上升到接口,將“實(shí)現(xiàn)”下放到子類中,這樣當(dāng)新增一個(gè)需求時(shí),我們重新實(shí)現(xiàn)一個(gè)子類繼承自接口或者舊的子類,然后在新的子類中新增功能,這樣就保證了舊的功能沒(méi)有發(fā)生變化(對(duì)修改關(guān)閉),同時(shí)新增了功能(對(duì)擴(kuò)展開(kāi)放)。

里氏替換原則

這里強(qiáng)調(diào)的是“子類必須能夠替換父類”

關(guān)于這個(gè)概念,一般書(shū)中介紹的都比較抽象,也曾將困擾了許多人。筆者在此結(jié)合多方資料,說(shuō)一下自己的理解。

首先里氏替換原則是繼承復(fù)用的基礎(chǔ),反映了父類與子類之間的關(guān)系。

通俗的講有父類的地方,全部替換成子類,不影響程序的運(yùn)行,這樣就滿足里氏替換原則。

那什么樣的子類在替換父類時(shí),不會(huì)影響程序運(yùn)行呢?

這種子類可以擴(kuò)展父類的功能,但不能修改父類的原有功能。這也是對(duì)單一職責(zé)原則的補(bǔ)充——對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。

如果違背了里氏替換原則,會(huì)讓程序出錯(cuò)的概率大大提升

舉個(gè)栗子????????????

我們定義了一個(gè)父類——鳥(niǎo),并且?guī)в幸粋€(gè)方法可以返回鳥(niǎo)的飛行高度。再定義兩個(gè)子類:麻雀、企鵝,并且企鵝重寫(xiě)了返回飛行高度的方法,使得返回值為0。當(dāng)外部需要獲取所有鳥(niǎo)類的飛行高度,并作為除數(shù)的分母使用,我們都知道0不可以作為分母,這時(shí)程序便出錯(cuò)了。

這個(gè)栗子便出現(xiàn)了“子類修改父類原有功能”的禁忌,違反了里氏替換原則,也就是不能采用繼承結(jié)構(gòu),要重新設(shè)計(jì)他們之間的關(guān)系。

依賴倒置原則

這個(gè)原則包含了兩個(gè)主題

  • 高層模塊不能依賴于底層模塊,兩者都應(yīng)該依賴于抽象概念

  • 抽象接口不應(yīng)該依賴于實(shí)現(xiàn),而實(shí)現(xiàn)應(yīng)該依賴于抽象接口

這里的抽象概念,我理解為接口,所以這是在告訴我們,要面向接口編程,不要面向?qū)崿F(xiàn)方式編程。

那為什么我們要面向接口編程呢,這里我舉一個(gè)實(shí)際生活中的栗子????????????

我們的電腦就是高層模塊,各種硬件設(shè)備就是底層模塊,我們每增加一個(gè)硬件設(shè)備(底層模塊),電腦(高層模塊)就需要設(shè)計(jì)一個(gè)新的接口來(lái)兼容設(shè)備,這樣便是高層模塊依賴于底層模塊,并且這并沒(méi)有滿足開(kāi)閉原則,因?yàn)槊看涡略鲈O(shè)備,都要對(duì)電腦進(jìn)行修改。但是如果電腦定義了一個(gè)通用接口,每個(gè)硬件設(shè)備都遵循了接口協(xié)議,大家都可以插到同一個(gè)接口上,那電腦便不再依賴硬件設(shè)備了,并且兩者現(xiàn)在都只需要跟中間層接口溝通就好,這也就是兩者都依賴于抽象概念。

所以從這里我們能看出,依賴導(dǎo)致原則也是實(shí)現(xiàn)開(kāi)閉原則的重要途徑之一,他的目的是通過(guò)面向接口編程,來(lái)降低類與類之間的耦合。

接口隔離原則

這里強(qiáng)調(diào)的是“客戶端不應(yīng)該被迫使用他們用不到的接口方法”

其實(shí)就是要求我們對(duì)各個(gè)類,建立他們專用的接口,而不要試圖去建立一個(gè)龐大的接口提供給所有需要他的類去調(diào)用它。

最少知識(shí)原則(迪米特法則)

定義上說(shuō),一個(gè)類應(yīng)該對(duì)其他類擁有最少的知識(shí)

翻譯成人話就是,如果兩個(gè)類之間無(wú)需直接通信,那就不要互相調(diào)用,交給第三方轉(zhuǎn)發(fā)就好了

舉個(gè)栗子????????????

公司老板不需要跟公司每個(gè)員工都直接交流,他只需要跟項(xiàng)目經(jīng)理交流就好,由項(xiàng)目經(jīng)理負(fù)責(zé)傳達(dá)老板的指示,這樣老板就擁有了對(duì)其他員工最少的知識(shí),解除了對(duì)每個(gè)員工的依賴(耦合),現(xiàn)在他只依賴于項(xiàng)目經(jīng)理。至于基層人員,當(dāng)然可以說(shuō)開(kāi)就開(kāi)嘍。

但是在使用迪米特法則的時(shí)候需要反復(fù)權(quán)衡,如果使用不當(dāng),會(huì)產(chǎn)生大量中介類,使項(xiàng)目結(jié)構(gòu)變的混亂。

合成復(fù)用原則

其實(shí)合成復(fù)用原則講的就是如果可以用組合解決問(wèn)題,就不用繼承。

也就是組合優(yōu)于繼承。

為什么組合會(huì)優(yōu)于繼承呢?

首先,如果使用了繼承,子類重寫(xiě)了父類方法,就會(huì)違背里氏替換原則,會(huì)讓程序增加出錯(cuò)的可能。這里合成復(fù)用原則和里氏替換原則又是相輔相成的。

其次,使用繼承,子類會(huì)依賴于父類的實(shí)現(xiàn),這不利于類的擴(kuò)展和實(shí)現(xiàn)。

最后,C#是無(wú)法使用多重繼承的,使用組合的方式會(huì)比層層繼承來(lái)的明白,利于項(xiàng)目的維護(hù)。

實(shí)現(xiàn)這個(gè)原則的方式也很簡(jiǎn)單,是通過(guò)將已有的對(duì)象納入新對(duì)象中,作為新對(duì)象的成員對(duì)象來(lái)實(shí)現(xiàn)的,新對(duì)象可以調(diào)用已有對(duì)象的功能,從而達(dá)到復(fù)用。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Unity游戲開(kāi)發(fā)中設(shè)計(jì)模式的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)頁(yè)題目:Unity游戲開(kāi)發(fā)中設(shè)計(jì)模式的示例分析
瀏覽地址:http://www.chinadenli.net/article2/gcsjic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)ChatGPT微信小程序建站公司網(wǎng)站設(shè)計(jì)公司商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管