我目前正在試圖成爲一個有點熟悉接口和仿製藥,所以根據自己的目標和實現我寫道:界面中發生了什麼?
public interface ICipher<T>
{
void EncryptData(T raw);
void DecryptData(T encrypted);
}
但是一個collegue說我不應該做這樣他說我應該這樣做:
public interface ICipher<TRaw, TEncrypt>
{
TEncrypt EncryptData(TRaw rawData);
TRaw DecryptData(TEncrypt encryptedData);
}
他提供後不久,他不得不離開。
雖然這個問題,爲什麼這是一個更好的解決方案?究竟有什麼區別?他們是不是都執行泛型,我能想到的唯一的事情就是要返回TRaw
和TEncrypt
對象。
我在這裏錯過了什麼嗎?這裏有什麼區別,有人能解釋嗎?
具有兩個通用參數的接口允許任何cypher實現爲加密值返回不同的類型。它更加靈活。 – Oliver