【发布时间】:2012-06-29 11:02:25
【问题描述】:
我正在努力养成编写接口而不是实现的习惯,虽然在大多数情况下,我可以看出其中的原因,但有一些地方我很挣扎。
举这个非常简单的例子:
public interface IAuditLog
{
void AddLog(string log);
}
public class AuditLog : IAuditLog
{
public void AddLog(string log)
{
//implementation
}
}
调用审计日志类:
public partial class AuditLogPage : System.Web.UI.Page
{
protected void btnAddLog_Click(object sender, EventArgs e)
{
IAuditLog objAuditLog = new AuditLog();
objAuditLog.AddLog("test log");
}
}
我在实例化的时候还是要使用 AuditLog 的,那有什么意义呢?如果 AddLog 方法签名发生变化,我仍然必须浏览所有使用它的页面并修改代码。我没有抓住重点吗?
提前感谢您的帮助, 威尔基。
【问题讨论】: