Organizacja klas – dostępność zmiennych. |
Organizacja klas – dostępność zmiennych. |
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 |
|
|
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. |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 12:34 |