public static FirstObjectType GetObject(SecondObjectType secondobjectType)
{
do something
}
我應該在哪裏放這個功能?我應該在代碼可讀性,習俗和傳統方面將它放在SecondObjectType類或FirstObjectType類中嗎?該函數是否應該包含在您的經驗中的返回類或參數類中?把功能放在合適的類別
感謝您的回答。
public static FirstObjectType GetObject(SecondObjectType secondobjectType)
{
do something
}
我應該在哪裏放這個功能?我應該在代碼可讀性,習俗和傳統方面將它放在SecondObjectType類或FirstObjectType類中嗎?該函數是否應該包含在您的經驗中的返回類或參數類中?把功能放在合適的類別
感謝您的回答。
我通常會將該方法放在與返回類型相同的類中方法。
如:
public static FirstObjectType GetObject(SecondObjectType secondobjectType)
{
do something
}
會走在FirstObjectType類。
或者,您可以使用工廠模式,並有一個工廠獲取您需要的對象。這可能會讓你的代碼類似於下面的代碼:
FirstObjectTypeFactory.GetObject(SecondObjectType secondObjectType)
然後你總是知道哪個工廠根據它的返回類型來獲取對象。
同意。通常當你想要一個對象A時,A是你看起來的第一個地方。 – Bort 2012-02-09 16:11:21
我不明白在FirstObjectType上具有靜態GetObject的意義。爲什麼不使用構造函數? – cadrell0 2012-02-09 16:13:49
如果使用構造函數,並且第一個對象不能從第二個對象構造/找到,那麼如果找不到對象,則不能返回null - 相反,您只是有一個空類。如果什麼都不應該返回而不是空的類的實例,我寧願返回null。它更容易檢查,如果另一個開發人員正在使用該類,他們將不得不知道要在空類中檢查什麼,以確定該對象的請求是否成功 – WraithNath 2012-02-09 16:17:34
我將爲此創建一個擴展方法。
只是在簽名
public static FirstObjectType GetObject(this SecondObjectType secondobjectType)
{
//do something
}
添加這之後,你可以這樣做:
SecondObjectType sobj = new SecondObjectType()
//code
FirstObjectType fobj = sobj.GetObject();
並把它與像ExtensionMethods.cs我的其他擴展方法文件。 或者如果包含GetObject方法的類也是靜態的,則將它放在同一個類中(在這種情況下,放在SecondObjectType的類中)
這是這樣含糊的回答,但我會給出幾個一般提示
如果你有FirstObjectTypes
集合,正在努力尋找匹配SecondObjectType
的一個,那麼它屬於類擁有該集合。這可能是一種工廠模式。
如果您始終創建新的FirstObjectType
,則它可能只是FirstObjectType
的構造函數。
請問SecondObjectType
是否需要了解FirstObjectType
?如果是這樣,那麼我會考慮在SecondObjectType
上做一個方法。
有一百萬其他情況,沒有一個適合所有人的尺寸。
GetObject()有什麼意義?你在實施工廠模式嗎? – jrummell 2012-02-09 16:17:48