結合unity項目開發淺談設計模式的六大原則(一)

  面向對象,六大原則,設計模式,數據結構與算法,這些知識點都是脫離編程語言存在的。也就意味着它們「比較抽象」,抽象的東西也就意味着從學習、理解到運用所須要花費的時間會比較長。程序員

    今天咱們就主要談談設計模式的六大原則:算法

    首先,六大原則是誰?編程

    它們分別是單一職責、開閉原則原則、依賴倒置原則、里氏替換原則、接口隔離原則、迪米特原則。設計模式

    其次,爲何須要學習這六大原則?安全

    六大原則是咱們提升面向對象編程代碼質量的必備原則,另外仍是咱們理解設計模式的必備前提。數據結構

   弄清楚了學習對象和學習目的,下面就能夠進入正題了,這六大設計原則本質上是什麼,又分別是用來作什麼的,實際中的運用又有哪些?編程語言

1、單一職責編輯器

定義:就一個類而言,應該僅有一個引發它變化的緣由。簡單點理解就是,就是一個類只負責一項職責(功能)。學習

從生活中的具體示例理解單一職責,spa

餓了麼:單一職責是點餐

2306:單一職責是定火車票

生活中的事物的單一性是爲了集中(精力/財力/物力),而後把這一點作到最好,只有這樣才能更有競爭力。

而編程中的單一性也是爲了集中,一個類它的功能,做用,用途集中到一點。這樣能夠避免代碼冗餘,方便管理,方便團隊溝通,能提升項目的開發效率

結合Unity 項目開發過程當中,有兩個注意點:

①類功能的單一性;

②方法功能的單一性;

一個類只負責一件具體的事情,一個方法只完成一個特定的功能。當你發現一方

法完成了兩件事情的時候,就須要適當的重構成兩個方法,類也是同樣的。

單一職責在unity項目開發中的應用:

①功能類庫的單一性:例如UGUI中的JSON就是單一用於解析JSON 的

②引擎組件類功能單一性:在Unity 引擎內有一組燈光組件,是用於實現燈光照射渲染功能的。它根不一樣的功能分割成了4 個組件:方向光,點光源,聚光燈,區域光。

 

2、開閉原則

定義:全稱開放封閉原則,軟件實體(類,方法,模塊)應該能夠擴展,可是不能夠修改。

在生活中的具體應用,

筆記本電腦

封閉:整個筆記本是封閉的,且筆記本背部標明瞭「非專業人士,請勿試圖拆卸或者維修」以及「撕毀保修無效」的封條。

開放:指的是筆記本提供了若干個USB 的插口,可供咱們擴展。

筆記本上的封閉,是爲了保證設備自己的安全。筆記本上的開放,是爲用戶預留能夠擴展的接口。而編程中的封閉,也是爲了保證原有的安全,當出現了新的需求,是以擴展的方式,而不是對原有的邏輯進行修改。面對需求,對程序的改動應該是以增長新代碼的方式解決,而不是更改舊的代碼(這一點在遊戲開發方向尤其重要)。

Unity 引擎自己就是開閉原則很好的一個案例。

Unity 官方把這款引擎打包發佈出來之後,這個引擎自己程序員是不能夠修改的,由於你沒有源碼--->對修改關閉。可是Unity 引擎提供了「編輯器擴展功能」,提供了一組完整的API,咱們能夠經過這組API對Unity 引擎擴展出N 個插件,以知足咱們的特定需求。

相關文章
相關標籤/搜索