最佳实践 - 何时超载?

P.B*_*key 3 c# .net-4.0

在设计类时,最好强制实现者通过使其成为方法签名的一部分来传递所有必需参数,或者创建重载并允许用户设置属性,然后检查它们是否设置正确?

例如,假设我们有一个Emailer带有方法的类Send.发送要求

public bool Send(string ToAddress, string FromAddress, string subject, string body, string Attachment = null)
Run Code Online (Sandbox Code Playgroud)

我也有公共财产

public string To { get; set; }
public string From { get; set; }
/// <summary>
/// Full filepath to attachment
/// </summary>
public string Attachment { get; set; }
public string Subject {get;set;}
public string Body {get;set;}
Run Code Online (Sandbox Code Playgroud)

现在,我应该创建一个重载Send

public void Send()

然后编写未填充属性的检查.或者,忽略过载并可能删除属性?

Dan*_*ite 10

Emailer通过持有这些属性,我觉得你有太多的责任感.也许你应该考虑将它分成一个Message类,然后你可以通过它.

看看.NET邮件类的工作方式.