Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System plików - Jak go ubrać w klasy?, Problem z zależnościami pomiędzy klasami.
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Na potrzeby pewnego projektu, zacząłem pisać system uploadu, donwloadu plików oraz w tym samym systemie tworzenie katalogów i ich przeglądanie, usuwanie katalogów i plików oraz inne pomniejsze funkcje. Chodzi o to, że nie wiem jak to dobrze ubrać w klasy i jak sobie proadzić z zależnościami pomiędzy nimi.

Do tej pory powstało mi kilka różnych klas, przykładowo: Path, Upload, Download, File, MimeTypes itp. Ogólnie, do tej pory działałem na jednej klasie głównej, która w konstruktorze brała jako swój patrametr tablicę z nazwami, i odpowiednie klasy były tworzone pod pola głównej klasy. Zrobiłem tak, żeby nie marnować zasobów, po co mi 6 klas, skoro korzystam tylko z jednej?

Chcąc załadować nowa klasę, tworzę pole klasy głównej (FileSystem), i zapisuję nową instancje klasy do tego pola. W dalszej części sktyptu korzystam z nowej klasy, odnosząc się do odpowiedniego pola klasy głównej. Ale co zrobić, jak klasa Download będzie potrzebowała dostepu do metody lub właściwości klasy Path? W takim przypadku musiałbym tworzyć nowy obiekt (drugi) klasy Path by go wykorzystać w klasie Download - a drugi, bo pierwszy obiekt tej klasy został już utworzony w klasie głównej, i istnieje pod odpowiednim polem.

Teraz pytanie: Jak to wszystko zgrabnie ogarnąć? Jak utworzyć odpowiednie zależności pomiędzy klasami? Zrobić główna klase, lub każdą, stosując singleton (chciałbym tego uniknąć)? Proszę o jakieś sugestie, ewentualnie linki lub, jeśli ktoś miał z podobnym problemem do czynienia - jakies wskazówki, jak to rozwiązać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adbacz
post
Post #2





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Dzięki by_ikar, linki mi sie przydadzą na pewno, ale wydaje mi się, że źle zrozumieliście mój problem. Nie chodzi mi o to, żeby operacje na plikach (czysto na plikach, dodawanie, usuwanie, przenoszenie, CHMOD itd), ubrać w klasy, ale, żeby rozwiązać zaleśności pomiędzy nimi. Żeby zrobić mały system, który będzie nimi zarządzał. Żeby każda klasa miała dostęp do innej, lub tylko niektóre, żeby miały dostęp do tych, które potrzebują.

Nie mogę dać dziedziczenia, bo co ma wspólnego klasa Path z klasą Download? Prawie nic. Na razie rozwiązałem to w ten sposób, że w głównej klasie tworze nowe pola a w nich instancje moich osobnych klas, i z tych pól głównej klasy mam dostęp do innych klas. Ale jak rozwiązać to, że mniejsza klasa potrzebuje wartości z właściwości innej mniejszej klasy? Albo potrzebuje sprawdzić, czy ścieżka dostepu do pliku, nie zawiera znaku '../'? Chyba, że napiszę całkowicie odrębny system w mojej głównej klasie, i zdefiniuję, jaka podrzędna klasa, korzysta z innyj, i w tedy, jak będę ją ładował, to załaduje też tą wymaganą.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 19:35