Skip to content

yanagiragi/Game-Design-Pattern

Repository files navigation

0. Intro

常用的設計原則:

  1. Single Responsibility Principle

    • 當設計封裝一個類別時,該類別應該只負責一件事
  2. Open-Closed Principle

    • 一個類別應該 對擴充開放,對修改關閉
  3. Liskov Substitution Principle

    • 子類別必須能夠替換父類別

      客戶端使用時只能呼叫父類別,不能使用 "強制將父類別轉換成子類別" 的做法,對於子類別怎麼實作父類別的資訊都應該要隱藏

  4. Dependence Inversion Principle

    • 高層模組不應該相依於低層模組,兩者應該相依於抽象概念

      例如汽車就違反這個原則,汽車(高層模組) 會因為相依於引擎(低層模組) 而被限制只能加特定種類的汽油

    • 抽象介面不應該相依於實作,而實作應該相依於抽象介面

      實作時不要去做任何的型別轉換,不然就限定了高層模處只能使用某一個低層模組的特定實作

      子類別重新實作時,不應該新增方法,讓高層模組有機會利用轉型去呼叫使用

  5. Interface Segregation Principle

    • 客戶端不應該被迫使用他們用不到的介面方法
  6. Least Knowledge Principle

    • 實作一個類別時,應該越少用到別的類別的功能越好
  7. 少用繼承多用組合

    例如 "鬧鐘" 繼承 "時鐘"

    選擇繼承,客戶端使用類別時,會知道 時鐘 的方法跟資訊 (增加選擇類別的困難度)

    選擇組合,用一個時鐘類別的變數,在不需要知道時鐘類別的細節的情況下隱藏時間類別的細節

About

Unity Design Pattern Based on 遊戲模式與遊戲開發的完美結合

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages