Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Organizacja klas – dostępność zmiennych.
Forum PHP.pl > Forum > PHP > Object-oriented programming
BartT
Mam rozbudowaną klasę A, której jedna z metod potrzebuje tablicy wykorzystywanej też w innych miejscach. Napisałem więc klasę B definiująca ową tablicę i metodę jej budowania z sql.
Teraz zastanawiam się jak ową tablicę z obiektu klasy B uczynić dostępną wewnątrz metody obiektu klasy A. Widzę 2 możliwości i zastanawiam się, której powinno się w OOP używać i dlaczego:

1.
Dopisać w definicji klasy A: Extends B, aby obiekt $a = new A odziedziczył z B tablicę i metodę jej tworzenia. Wtedy nie tworzę obiektu $b = new B a tablica staje się właściwością obiektu klasy A.
To chyba niedobrze, bo będę tej tablicy potrzebował w innych miejscach więc chyba wolałbym mieć ją jako osobny obiekt.
Choć w tych innych miejscach też mogę wstawić Extends B i budować tę tablicę jako private kolejnych klas.

2.
Poza definicją klasy, tworzę nowy obiekt $b = new B i przekazuję go jako parametr metody w klasie A.
W kodzie wygląda to jakby $b stanowiło jedyną lub przynajmniej główną postawę działania tej metody z klasy A podczas gdy jest tylko drobnym dodatkiem – większość potrzebnych danych klasa A buduje sobie sama.

Oba rozwiązania działają, więc jest to pytanie z zakresu „filozofii OOP”, której jeszcze nie czuję.

Hmm... można jeszcze w klasie A zdefiniować tę tablicę jako private oraz metodę publiczna set, której przekażę obiekt klasy B

Z góry dziękuję za jakieś naprowadzenie.
Pozdrawiam
Pyton_000
Jako parametr.
Skoro używasz B w wielu miejscach to znaczy że nie przynależy bezpośrednio do A i tylko do A.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.