Powiedzmy, że mam klasę A
i moduł B
. Chciałbym dołączyć/rozszerzyć B
do A
, ale oznaczono jako włączone/rozszerzone metody jako prywatne (więc nie będą dostępne dla osób dzwoniących pod numerem A
, ale będą dostępne w metodach A
).Czy mogę dołączyć/rozszerzyć moduł, ale oznaczyć wszystkie włączone/rozszerzone metody jako prywatne?
Jak dołączyć B
do A
, ale zaznacz wszystkie włączone metody jako prywatne?
Może to zadanie lepiej nadaje się do składu delegacji/zamiast dziedziczenia? –
@RonDahlgren Czy możesz opracować lub podać lub połączyć z tym, co proponujesz? –
Delegacja to wzorzec projektowy obejmujący utrzymywanie wewnętrznej instancji B (delegata). Metody, które chcesz ujawnić, powinny być napisane jako metody A, gdzie implementacja po prostu wywołuje ("delegatów") wewnętrzną instancję B. Kompozycja jest mniej konkretną formą delegacji, gdzie określone zachowanie jest dokonywane przez "kompozycję "wystąpienia różnych, odmiennych klas. Wikipedia: http://pl.wikipedia.org/wiki/Delegacja_pattern i http://pl.wikipedia.org/wiki/Object_composition –