我製作了一臺將餅乾從一種類型轉換爲另一種類型的機器。你可以將通用對象分組到列表中嗎?
每個BiscuitTransformer具有類似DigestiveBiscuitTransformer的方法:
IBiscuit Transform(DigestiveBiscuit digestiveBiscuit)
方法。
考慮到每種變壓器的類型不同,是否可以使用通用接口將它們分組,例如,在ChocolateBiscuitTransformer
IBiscuit Transform(ChocolateBiscuit chocolateBiscuit)
的GingerNutBiscuitTransformer:
IBiscuit Transform(GingerNutBiscuit gingerNutBiscuit)
理想情況下,我想實現,是一個BiscuitTransformationManager,將採取在任何類型的餅乾,給你一個IBiscuit回。
它將所有變壓器的加載到List<IBiscuitTransformer>
然後IBiscuitTransformer也將暴露Type InputBiscuitType {get;}
所以你可以把它比作你的來電餅乾類:
BiscuitTransformationManager:
IBiscuit Transform<T>(T biscuit)
{
var transformer = LoadTransformers().Single(c => c.InputBiscuitType == typeof(T));
return transformer.Transform(biscuit);
}
我不認爲因爲變壓器將會期待一個具體的類型,而不是T.
問題是我無法弄清楚如何將它們分組,如果我使接口方法Transform<T>
我不知道如何實現它,因爲在DigestiveBiscuitTransformer
中T始終是DigestiveBiscuit
,但代碼會接受任何內容,這是沒有意義的。
任何想法?
「我製作了一臺將餅乾從一種類型轉換爲另一種類型的機器。」你應該申請專利。 – BoltClock
我會,但它不工作...! – NibblyPig
做所有的餅乾實施IBiscuit開始? – sstan