2015-02-17 68 views
0

我確信之前已經詢問過此問題,但我無法找到任何相關答案 - 可能是因爲我使用的術語的一般性質。屬於另一個具有類似名稱的類的屬性的名稱約定

我有一堂課 - 我們稱之爲Foo。現在給定的Foo具有定義它的性質的各種屬性。爲了爭辯,我們稱它們爲Name,InactiveNotesFoo也可以有許多種類,因爲缺少一個更好的詞,每個種類都是FooType

所以,我們有下面的類定義:

public class FooType 
{ 
    public byte Id { get; set; } 
    public string Name { get; set; } 
    public bool Inactive { get; set; } 
    public string Notes { get; set; } 
} 

public class Foo 
{ 
    public Guid Id { get; set; } 
    public FooType TypeOfFoo { get; set; } 
    public string Name { get; set; } 
    public bool Inactive { get; set; } 
    public string Notes { get; set; } 
} 

不完全理想的情況下,我知道了。不幸的是,FooType上的InactiveNotes字段是必須的,所以我不能按我的意願使用enum。我的窘境是,我無法找出TypeofFooFooType的合理描述性名稱。稱他們爲TypeofFooFooType是醜陋的,並且在將來容易產生混淆,所以我正在尋找替代品。

是否有涵蓋此的任何形式的命名約定?

+5

'public FooType Type {get;組; }'或'public FooType FooType {get;組; ''? – dotctor 2015-02-17 20:39:26

+0

我對'Type'的關注是'System.Type'的潛在混淆。同樣,'FooType'(屬性)與'FooType'(類)混淆。爲了記錄,後者是我最初的樣子。我是否在推翻它? – Locke 2015-02-17 20:41:58

+1

命名取決於上下文。名稱應該表示它存儲的內容。如果這是一個'帳戶'說'帳戶'。當你給像'FooType'這樣無意義類型名稱的例子時,你不能指望一個好的答案。我可以看到@dotctor已經給出了很好的答案。這就是說,你的問題是主觀的,因此是題外話。 – 2015-02-17 20:42:09

回答

0

我會嘗試使用polymophy子類Foo並使用工廠的枚舉FooType來創建對象。你的子類應該重寫一般的方法來添加特定的行爲。 但我認爲上下文對於選擇正確的模式非常重要。只是使用一個特殊的命名在我看來是混亂的,並不代表你的意願。

相關問題