私は実装ではなくインターフェースにコーディングする習慣を身につけようとしていますが、ほとんどの場合、私が苦労している理由がいくつかあることがわかります。
この本当に単純な例を見てください:
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メソッドの署名が変更された場合でも、それを使用するすべてのページを調べてコードを修正する必要があります。私はポイントを逃していますか?
ウィルキー、事前に助けてくれてありがとう。