具象クラスが基本クラスから継承されず、パターンの全体的な機能が維持されるように、テンプレート メソッド パターンのバリアントを実装するにはどうすればよいでしょうか。継承できない理由は、別のクラスから継承する必要があり、多重継承が利用できないためです。
たとえば、次の Tempate メソッド パターンがあるとします。
public abstract class BaseClass {
public void Alpha() {
Beta();
}
public abstract void Beta();
public void Gamma() {
Delta();
}
public abstract void Delta();
}
public ConcreteClass : BaseClass {
public override void Beta() {
Gamma();
}
public override void Delta() {
Console.WriteLine("Delta");
}
}
...
var object = new ConcreteClass();
object.Alpha(); // will outout "Delta"
ConcreteClass が BaseClass を継承せずに同じ結果を得るにはどうすればよいですか?