public static FirstObjectType GetObject(SecondObjectType secondobjectType)
{
do something
}
我应该把这个功能放在哪里?我应该在代码可读性,习俗和传统方面将它放在SecondObjectType类或FirstObjectType类中吗?函数是否应该包含在返回类或参数类中?
感谢您的回答。
答案 0 :(得分:2)
我通常将该方法放在与该方法的返回类型具有相同类型的类中。
例如:
public static FirstObjectType GetObject(SecondObjectType secondobjectType)
{
do something
}
将进入FirstObjectType类。
或者,您可以使用工厂模式并拥有一个工厂来获取所需的对象。这可以为您提供与以下内容类似的代码:
FirstObjectTypeFactory.GetObject(SecondObjectType secondObjectType)
然后你总是知道哪个工厂根据它的返回类型来获取对象。
答案 1 :(得分:1)
这是模糊回答的方式,但我会给出一些一般提示
如果您有FirstObjectTypes
的集合并且正在尝试找到与SecondObjectType
匹配的集合,则它属于拥有该集合的类。这可能是工厂模式。
如果您始终在创建新的FirstObjectType
,那么它可能只是FirstObjectType
的构造函数。
SecondObjectType
是否必须了解FirstObjectType
?如果是这样,那么我会考虑将其作为SecondObjectType
的方法。
还有一百万个其他场景,并且没有一个适合所有场景。
答案 2 :(得分:0)
我将为此创建一个扩展方法。
只需在签名
中添加此即可public static FirstObjectType GetObject(this SecondObjectType secondobjectType)
{
//do something
}
之后你可以这样做:
SecondObjectType sobj = new SecondObjectType()
//code
FirstObjectType fobj = sobj.GetObject();
并将其与我的其他扩展方法文件(如ExtensionMethods.cs)一起使用。 或者,如果包含GetObject方法的类也是静态的,则将它放在同一个类中(在本例中为SecondObjectType的类)