簡體   English   中英

將函數放在適當的類中

[英]Putting function in appropriate class

public static FirstObjectType GetObject(SecondObjectType secondobjectType) 
{
         do something
}

我應該在哪里放置此功能? 就代碼可讀性,習慣和傳統而言,我應該將其放在SecondObjectType類還是FirstObjectType類中? 根據您的經驗,該函數應該包含在返回類還是參數類中?

感謝您的回答。

我通常將方法放在與方法的返回類型相同的類中。

例如:

public static FirstObjectType GetObject(SecondObjectType secondobjectType) 
{
         do something
}

將放在FirstObjectType類中。

另外,您可以使用工廠模式並擁有一個工廠來獲取所需的對象。 這可以使您的代碼類似於以下內容:

FirstObjectTypeFactory.GetObject(SecondObjectType secondObjectType)

然后,您總是根據對象的返回類型知道從哪個工廠獲取對象。

這是一種模糊的答案,但我會給出一些一般性提示

如果您具有FirstObjectTypes的集合,並嘗試查找與SecondObjectType匹配的SecondObjectType ,則它屬於擁有該集合的類。 這可能是工廠模式。

如果始終創建一個新的FirstObjectType ,則它可能只是FirstObjectType的構造FirstObjectType

SecondObjectType是否必須具有FirstObjectType知識? 如果是這樣,那么我將考慮使其成為SecondObjectType的方法。

還有一百萬種其他情況,沒有一種適合所有情況。

我將為此創建一個擴展方法。

只是在簽名中添加

public static FirstObjectType GetObject(this SecondObjectType secondobjectType) 
{
    //do something
}

之后,您可以執行以下操作:

SecondObjectType sobj = new SecondObjectType()
//code
FirstObjectType  fobj = sobj.GetObject();

並將其與我的其他擴展方法文件(如ExtensionMethods.cs)一起放入。 或者,如果包含GetObject方法的類也是靜態的,則將其放在同一類中(在本例中為SecondObjectType的類)

暫無
暫無

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

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