Итак, скажем, у меня был класс C #,
class Foo : Bar, IBar, IBar2
{
}
... где Bar — класс, а IWhatever и IFine — интерфейсы. Я планирую использовать аналогичную реализацию IWhatever и IFine в нескольких классах. Единственный разумный способ инкапсулировать этот код и повторно использовать его во всех классах — создать класс Whatever, наследуемый от IWhatever, и Fine, наследуемый от IFine и сделайте их членами класса, который реализует эти интерфейсы, а затем вызовите их члены в членах, реализованных из интерфейсов, например так:
class Foo : Bar, IWhatever, IFine
{
IWhatever mWhatever;
IFine mFine;
Foo()
{
mWhatever = new Whatever();
mFine = new Fine();
}
// from IWhatever
void Kick()
{
mWhatever.Kick();
}
// from IFine
void Punch()
{
mFine.Punch();
}
}
Я делаю это правильно? Есть ли способ лучше?