我正在尝试养成对接口而不是实现进行编码的习惯,虽然在大多数情况下,我可以看到其中的一些原因我很挣扎。
举这个非常简单的例子:
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 方法签名发生变化,我仍然需要浏览所有使用它的页面并修改代码。我错过了重点吗?
提前感谢您的帮助,威尔基。