繁体   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