Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Organizacja klas – dostępność zmiennych.
BartT
post 19.04.2016, 08:51:20
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 14.06.2004

Ostrzeżenie: (0%)
-----


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

Ten post edytował BartT 19.04.2016, 08:52:10
Go to the top of the page
+Quote Post
Pyton_000
post 19.04.2016, 10:55:50
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Jako parametr.
Skoro używasz B w wielu miejscach to znaczy że nie przynależy bezpośrednio do A i tylko do A.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 12:34