次のようなシナリオが発生するシステムを設計しています。実装によって動作が異なるメソッド f1() があります。すべての実装で動作が同じ f2() メソッドがあります。
私は次のように設計しました:
interface I1
{
//Behaviour will vary across implementations
void f1();
//Same behaviour for all implementations
void f2();
}
abstract class C
{
//Implemented in the Base class
void f2()
{
}
}
public class C1:C,I1
{
//Implemented interface method
public f1()
{
}
}
public class C2:C,I1
{
//Implemented interface method
public f1()
{
}
}
デザインは正しいですか?このシナリオで適切な設計を提案できる人はいますか?