![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 26.06.2010 Ostrzeżenie: (10%) ![]() ![]() |
Cześć,
ostatnio postanowiłem poćwiczyć sobie programowanie obiektowe. Na tym forum zdążyłem już wiele razy przeczytać, że jeden obiekt = jedno zadanie. Przejdźmy do rzeczy. Mam jakieś archiwum a w nim kilka plików .txt. Teraz chcę napisać skrypt, który rozpakuje to archiwum i zmieni rozszerzenie plików z .txt na .html, po czym spakuje je. Jak zrobić to, aby było poprawnie? Osobna klasa do rozpakowywanie i pakowania i osobna do zmiany rozszerzenia? Czy w takim wypadku klasa stosować dziedziczenie? Może macie inne, lepsze, bardziej poprawne rozwiązania? Rozumiem, że lepiej nie pakować tego do jednej klasy? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 26.06.2010 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Zrób klasę Archiver, która będzie realizowała operacje extract i pack. Samą funkcjonalność tych operacji wydziel do klas ArchiveExtractor i ArchivePacker. Mam rozumieć, że do samej obsługi archiwów potrzebuję aż trzech klas? Archiver, która będzie wywoływać klasy ArchiveExtractor i ArchivePacker? Zrozum mnie jeśli to źle zrozumiałem, ale jakoś tych dwóch zdań nie mogę pojąć. Ja myślałem o czymś takim - klasa Archiver i w niej są dwie metody jedna pakuje druga rozpakowuje. |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Mam rozumieć, że do samej obsługi archiwów potrzebuję aż trzech klas? Archiver, która będzie wywoływać klasy ArchiveExtractor i ArchivePacker? W rzeczywistości ja napisałabym tu jeszcze więcej. Wspomniane wyżej zamieniłbym na interfejsy i dodał realizacje ZipArchiveExtractor, ZipArchivePacker.Dzięki czemu możesz osiągnąć dużą elastyczność w implementacji, choćby dzięki strategii, którą można wykorzystać aby wprowadzić później użycie RarArchiveExtractor, e.t.c. Skąd zdziwienie, że trzy klasy to dużo? Czemu uważasz to za problem? Małe klasy realizujące pojedynczą odpowiedzialność to coś do czego powinieneś dążyć. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 22:51 |