Unity C# | 命名法則 & 低耦合、高內聚

閱讀時間約 3 分鐘

前言

  距離上一次撰寫文章,相隔了半年多,這一段時間考慮相當久,甚麼時候要回來寫作、要寫些什麼,躊躇不前而延宕相當長一段時間,最近一段時間鍛鍊程式技能,感覺是個好時機,決定回來認真經營專欄。
  這段時間,發現方格子上面UnityC#相關的內容相當少,雖然可能是因為寫程式不太上方格子,以及其他領域資源豐富,不過依然決定經營,也很開心方格子上更新了程式工具。

命名法則

  進入主題, 命名規則在撰寫程式中是相當重要的一環,無論是Debug或是維護和討論等等都有十足的地位, 世界上有相當多的命名規則,本文主要介紹兩個命名法則:PascalCase、CamelCase
PascalCase | 第一個字大寫,單字字首大寫
//範例
Void PickUp(){}
Void PrintName(){}
適用範圍:
  • Class及同層級名稱。(ex.enum)
  • Public等公開屬性。
CamelCase | 第一個字小寫,單字字首大寫
//範例
private int boxHealth;
private bool findTargert;
適用範圍:
  • object name
  • private私有屬性
補充:
不過命名法則的適用範圍並非一定,主要是團體程式內部溝通好,或者自己使用順手即可,譬如我是以public使用Pascal,而private使用CamelCase。

耦合與內聚

耦合
  兩個模組間的關聯性或相依性,高耦合的相依性高,導致小錯誤(Bug)容易牽一髮而動全身,無論是維護還是修改細節都有相當高的風險。
內聚
  模組本身不需要依賴其他模組,這個程式本身就能完成工作,雖然提高了獨立性,但有可能程式碼重複。

好的程式

低耦合、高內聚
  由 Larry Constantine 提出來的兩個名詞,當一個軟體內部的程式每個都可以獨立運作,彼此的關聯性較低,那這個程式就是一個好的程式。
why?
  由相反的「高耦合、低內聚」來解釋相對容易,假設今天撰寫角色狀態和特殊狀態的程式,如果使用特殊狀態去連結角色血量:
public class PaticularState : MonoBehaviour
{
  [SerializeField]
  private PlayerState playerState;
  ...
} 
那當未來我們整個改寫角色狀態時,也必須要一併改寫特殊狀態,如果這一段連結改成Event的訂閱來處理,那特殊狀態只要取消訂閱即可。
(P.S 寫完才想到我們不會把狀態和特殊狀態分開寫)
公開與私有
  當public出來的值太多,公開就容易變冗長,浪費資源,在撰寫程式的時候也不方便快速找到需要的程式碼,所以可以如上面使用的[SerializeField],讓這段私有的程式直接在Unity中呈現。


結語

  在認真專研程式的第一站我參考的朋友的專案,非常謝謝願意讓我看看,也同時因此查找了想當多的資料,我認為不管是命名法則還是耦合內聚,我覺得無論是否新手都非常重要,這些和寫程式並無直接關聯,卻是撰寫程式的準則和細節。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
106會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。