Как должна быть реализована композиция?
Почти во всех книгах и статьях говорят о склонностях в пользу композиции, а не наследования. Но у меня при её реализации немного хромает разум.
Для примера реализации приведу псевдокод:
class A {
function a( ){}
function b( ){}
function c( ){}
}
class B {
function a( ){
a.a( );
}
function b( ){
a.b( );
}
function c( ){
a.c( );
}
function d( ){}
function e( ){}
}
class C {
function a( ){
b.a( );
}
function b( ){
b.b( );
}
function c( ){
b.c( );
}
function d( ){
b.d( );
}
function e( ){
b.e( );
}
}
Разве это не является избыточным? Или при наследовании классов все то же самое?
Источник: Stack Overflow на русском