这确实是一个非常简单的问题,我希望得到“情况决定”的答案。然而,我想知道人们对将参数传递给构造函数或方法有何想法。
我将尝试为我的问题设置背景:
public interface ICopier
{
void Copy();
}
public class FileCopier : ICopier
{
String m_source;
String m_destiniation;
FileCopier(String source_, String destination_)
{
m_source = source_;
m_destiniation = destiniation_;
}
public void Copy()
{
File.Copy(m_source, m_destiniation, true);
}
}
或者 FileCopier.Copy() 应该接受source_和destination_作为方法参数?
我想让这些类尽可能抽象。
我问这个问题是因为我现在有其他用于删除、重命名等的接口/类,并且我想创建一个执行此操作的标准。
Thanks!
这取决于 :)
基本上,面向对象指出对象应该封装数据和行为。当您将数据作为构造函数参数传递时,您表明这是要封装的数据。
另一方面,当您将数据作为参数传递时,您表明这是与对象耦合较少的数据。一旦你开始走向数据上下文交互(DCI),许多对象越来越倾向于封装行为而不是数据。
同时,《Clean Code》一书还指导我们限制方法参数的数量,最终得出无参数的方法是最好的设计的结论。
因此,我倾向于通过将数据作为构造函数参数传递来封装数据,以便拥有简单的 API。那么它看起来很像Command object.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)