簡體   English   中英

基於類的隱式接口

[英]Implicit interface based on class

我的業務層中有很多類都有一個接口,這些接口必須始終具有與業務類的公共方法和屬性相同的方法和屬性。 這是一個常見的場景,因為在單元測試時需要接口進行依賴注入和模擬。

如果我能以某種方式將接口定義為與類的公共方法和屬性相同,那將是最佳選擇。 這樣我就不必一直將粘貼方法定義從我實現的類復制到我的界面。 我沒有看到任何邏輯問題,但我知道在 C# 中不能直接做到這一點。

也許有人可以想出一個合理的方法來實現這一目標?

這是一個例子。 這是一個界面。

public interface IAccountBusiness
{
    Guid GetAccountIdByDomain(string domain);

    void CreateAccount(string accountType, string accountName);
}

這是實現:

public class AccountBusiness : IAccountBusiness
{
    public Guid GetAccountIdByDomain(string domain)
    {
        // Implementation
    }

    public void CreateAccount(string accountType, string accountName)
    { 
        // Implementation
    }
}

如果我想在 CreateAccount 中添加更多參數,例如“電子郵件”,那么我必須將它添加到界面和業務類中。 在這個例子中,這是一個小麻煩,但在更大規模的項目中,它......好吧......仍然是一個小麻煩,但它不一定是。

Resharper's Change Signature重構使您可以輕松做到這一點:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM