次のインターフェイスがあるとします。
public interface IFoo
{
bool Foo(Person a, Person b);
}
上記の次の2つの実装:
public class KungFoo : IFoo
{
public bool Foo(Person a, Person b)
{
if (a.IsAmateur || b.IsAmateur) // common logic
return true;
return false;
}
}
public class KongFoo : IFoo
{
public bool Foo(Person a, Person b)
{
if (a.IsAmateur || b.IsAmateur) // common logic
return false;
return true;
}
}
「共通論理」(コードでコメントされている)をどこに配置すれば、1つの場所(たとえばFuncとして)に配置され、複数の実装で(上記の場合のように)繰り返す必要がなくなりますか?
上記の例は非常に簡単ですが、実際の「共通論理」はより複雑であり、Foo()メソッドは何か便利なことをします。
質問が明確であることを願っています(そして、他の場所ではまだ回答されていません-私は検索を行いました)が、必要に応じて詳細を調べてください。