目前市面上大多知名的程式語言大多都是物件導向程式語言,什麼是物件導向程式語言?簡單說就是無論寫的東西是什麼,都必需依存在一個"類別",然後再用這個"類別"產生一個"物件",而這個物件可以操作,有生命週期,可以被延展也可以被限制。
當在設計一個類別的時候,都是以"一種東西"的概念去設計,命名時我們要先回答以下問題:
類別的名稱通常應該是一個集合名詞,而且是單數或不可數名詞,例如,在描述使用者時,會寫:
public class User
{
private int _userId;
public string UserName { get; set;}
public void Attack(){ return; }
}
User warrior = new User();
User magician = new User();
有時候也會用組合字或者名詞片語來描述一個類別,例如"ObjectParser", "ConnectionManager", "AllocateService"。
在為class命名的的時候,雖然原則還是希望他是用比較普遍的命名,不會讓這個類別直接和物件名稱相同:原因是希望這個類別能保留重用的可能性。簡單說就是你要讓一個類別縮小描述的範圍比較簡單(例如用動物來描述貓,狗或其他任何動物),但要讓一個小範圍的類別擴大描述範圍比較困難(例如用大富翁的類別就沒辦法描述麻將,即使他們都是table game)。從上面的例子也可以看出來,類別的命名也應該要適當,太過於General可能會讓整個類別太大變成Large Class的code smell。
為了讓類別便於管理,會有幾個方法來管理:
所以,類別命名要注意什麼呢?
1.它必需是一個單數名詞,而且不會直接特指某個物件。
2.它能讓人一眼就看出他的用途,同一個團隊的人應該可以馬上理解他的用途及要解決的問題
3.它能被方便的搜尋及管理
類別命名應該是相對比較單純的,但在前端開發時可能比較沒那麼容易,有遇過什麼很奇怪的問題可以分享嗎?留言讓大家知道吧!