[英]Name convention for properties that are another class with a similar name
我敢肯定這已經被問過了,但是我很難找到任何相關的答案-可能是因為我所用術語的一般性質。
我有一堂課-我們稱之為Foo
。 現在,給定的Foo
具有定義其性質的各種屬性。 為了便於討論,我們稱它們為Name
, Inactive
和Notes
。 也可能有很多Foo
,每個變體都是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
上的“ Inactive
和“ Notes
字段是必須的,因此我不能隨意使用enum
。 那么,我的困惑是,我很難為TypeofFoo
和FooType
確定一個合理的描述性名稱。 稱它們為TypeofFoo
和FooType
很丑陋,將來容易引起混淆,因此我正在尋找替代方案。
有什么命名約定可以涵蓋這一點嗎?
不,沒有命名約定。 實際上,.NET Framework本身並不會避免使用與其類型名稱相同的屬性,甚至在一些較舊的准則中也建議使用該屬性:
這不是一個萬無一失的解決方案,並且在某些極端情況下(如調用靜態成員)可能會引起混亂 ,但是還不錯,有理由明確避免使用它。
我將嘗試使用FooType
Foo
子類,並使用帶有枚舉FooType
的工廠來創建對象。 您的子類應重寫常規方法以添加特定的行為。 但是我認為上下文對於選擇正確的模式很重要。 在我看來,僅使用特殊的命名是令人困惑的,並不代表您打算上課。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.