有什麼設計模式可以將以下代碼重構爲編譯時類型安全的東西(即無類型轉換)?是否有一種設計模式將派生對象傳遞給基類方法而無需投射?
public abstract class Base1 {
public abstract void DoStuff(Base2 b);
}
public class Specific1 : Base1 {
public override void DoStuff(Base2 b) {
var s = (Specific2)b;
// do clever things with s
}
}
public abstract class Base2 { }
public class Specific2 : Base2 { }
+1提寧寧的維基:) – 2011-04-05 19:20:14