簡體   English   中英

屬性與靜態屬性

[英]Attribute vs Static Property

我有一個需要保存到MongoDB集合中的模型。 要獲得集合名稱,我有兩個選擇。

1)屬性

我用自定義屬性裝飾類,並使用反射來訪問其中的值。 然后,我可以將其與type一起緩存,以免將來進行查找。

[MongoCollection("Foo")]
public class Foo
{
}

2)靜態特性

在這里,我在包含集合名稱的類中具有靜態屬性。

public class Foo
{
    public static string CollectionName { get { return "Foo"; } } 
}

我發現我傾向於使用前者,因為前者看起來和感覺上都更干凈,但是這里的一些高級開發人員正在利用反射來提高自己的鼻子。

第一種選擇是否需要解決?還是選擇第二種更好?

這是元數據與數據的明顯對比:

  • 選項1: 應假定屬性包含有關附加到它們的實體的元數據
  • 選項2:成員字段和屬性,不管實例或靜態, 都應該認為,組成類的積分值數據

因此,選項1屬性是表示元數據的正確方法。 反射的使用僅僅是技術上的問題,可以封裝到一個單獨的類中,例如AttributeManager ,這將簡化對元數據的訪問並適當地緩存它們以避免性能開銷(在特定情況下應該是一個問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM