前往
大廳
主題

【Unity】面試心得(一)設計模式(Design Pattern)

曉雄 | 2022-08-03 22:19:44 | 巴幣 2212 | 人氣 774

前言
本系列為個人最近參加Unity相關工作面試時的反省文,挑出過程中印象較為深刻的題目,為自己的經驗做一下總結……才怪,實情是因為答得不理想,所以忘不了。為了下次能夠更從容的面對,整理一下題目和自己的理解。


1. 什麼是設計模式(Design Pattern)?

設計模式是用來進行程式開發的方式,是對反覆出現的一些行為或問題所歸納出的解決方案,在開發者對於效能或其他方面需求上可以帶來正向效益。不同的設計模式是針對不同的情境相應而生,各有利弊,沒有絕對的正確的解法。

而在Unity中,個人常用的設計模式有單例(Singleton)、觀察者(Observer)、物件池(Object Pooling)、原型模式(Prototype),另外,稍微摸索過的的設計則有狀態模式(State)、工廠模式(factory)、MVC模式。

a) 單例模式(Singleton)
是在程式中,針對一個物件,可能是結構(struct)或類別(class),僅進行單次實例化(Instance),並在其整個生命週期中反覆利用,一般應用在會被重複利用的參數或方法。

b) 觀察者模式(Observer)
是在程式中,使所有子物件對自己產生相依性,使作為觀察者的物件可以有效地去掌握並管理其他物件。在此模式中,一般利用事件,讓觀察者主動對被觀察者進行加入(+=)與移出(-=)。

c) 物件池模式(Object Pooling)
是在初始化階段即準備場景需要重複調用的物件,該物件通常數量有限,並且不會增加。使用結束的物件會被回收於池(Pool)中等待下一次的調用。

d) 原型模式(Prototype)
與物件池模式類似,在初始化階段準備一個較為複雜的物件原型,提供後續實例化時直接複製該物件,以減輕實例化帶來的負擔。

e) 狀態模式(State)
是在程式中,定義不同的模式(可使用Enum以提升可讀性),呼叫的方法(Method)可以改變物件本身的狀態,一般而言,在每一個程序的最後,會回傳(Return)下一個狀態。可以理解為一種有限狀態機(Finite State Machine)。

f) 工廠模式(Factory) & MVC模式(Model-View-Controller)
由於此二者個人尚處於摸索階段,在已經撰寫的程式碼中,尚未有類似的設計手法,或沒有靈活運用的實作,故無法很清楚地去理解或說明。



結語
對於設計模式個人許多都只是個人的理解與應用方式,或許也存在不少誤解,若是剛好有人看見的話,歡迎指教!不要讓我在錯誤的道路上越走越遠外,也省得我在這裡誤人子弟,這可是功德一件。

創作回應

白煌羽
辛苦了
2022-08-04 00:22:44
曉雄
多謝了 [e41]
2022-08-04 01:18:34

更多創作