Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak napisać skrypt w OOP - problem z koncepcją
Forum PHP.pl > Forum > Przedszkole
Gramolik
Cześć,

Chciałem prosić Was o pomoc w napisaniu skryptu w OOP. Strukturalnie napisał bym go bez mrugnięcia okiem jednak obiektowo jakoś się zaciąłem. Być może rozwiązanie mojego problemu pozwoli mi ruszyć w świat obiektowości. Do rzeczy.

Chciałbym napisać prosty skrypt do zarządzania programami i licencjami. No i padam już w momencie przemyśleń na temat struktury. Nie umiem się przestawić na obiektowe widzenie. Zgodnie z tym co wiem o oop każdy obiekt klasy to tak jak by inny przedmiot. Myślałem więc, że trzeba zrobić dwie klasy, program i licencja.

Klasa Program
Składowe: id, nazwa, typ_licencji
Metody: Dodaj, Pokaz, Pokaz_wszystkie , Usuń

Klasa Licencja
Składowe: id, ilość, klucz
Metody: Dodaj, Pokaż, Usuń

O ile powyższe myślenie jest w miarę poprawne to jakoś nie mogę sobie wyobrazić jak osiągnąc sytuację aby po wywołaniu Program->Pokaz(id) wyświetliło się podsumowanie programu wraz z licencją przynależącą do niego. Nie wiem jak to zaplanować. Możecie mnie jakoś naprowadzić, jak taki skrypt powinien być skonstruowany?

buliq
Mało.
Licencje dzielimy jeszcze na rodzaje, a do tego dochodzą właśnie klucze więc osobno klasa (a może interfejs) do definicji rodzajów licencji, i osobny przypadek dla kluczy (klasa)
Następnie każdy rodzaj licencji ma osobną klasę dziedziczącą po tej wyżej, i odpowiednie metody, które działają właśnie dla tego rodzaju licencji.

Teraz ciekawiej, bo możesz robić wiele powiązań
Program może mieć kilka rodzai licencji,
Klucze mogą być różnych typów licencji,

więc:
Klasa program tworzy obiekty Licencja, w metodzie Pokaz pobierasz dane z tych obiektów.
Klasa klucz tworzy obiekty do licencji i do programu (tak wiem że program już ma obiekty licencji, ale wszystkich, a ja chciałbym tą jedyną)

Oczywiście jeżeli zakładasz że program ma tylko jedną licencję i jeden klucz, to nic nie stoi na przeszkodzie aby to program tworzył obiekty i licencji i klucza
Gramolik
Hej, dzięki za odpowiedź!

Zastanawiam się dlaczego osobna klasa na klucze? Klucz w moim zamyśle miał być tylko składową danej licencji, ciągiem znaków przyporządkowanych do konkretnej licencji które w czasie instalacji programu będę musiał wpisać.

Licencja była by klasą wzorcową a dziedziczyły by po niej licencja_internetowa, licencja_sprzetowa oraz licencja_darmowa

Powiedzmy mam pakiet office 2010 - do niego mam 10 stanowiskową licencję - jeden klucz (serial) oraz 5 stanowiskową - drugi klucz (serial).

Czyli tworzę obiekt klasy Program, wywołuję metodę pokaz(office2010) metoda ta tworzy obiekt klasy licencja_internetowa i wywołuje metodę pokaz_licencje(office2010), a co w przypadku kiedy mam licencję internetową do tego programu oraz licencję sprzętową, czy metoda - pokaz w klasie Program ma tworzyć obiekty dla każdego typu licencji i sprawdzać czy istnieją przypisane licencje konkretnego typu do danego programu?



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-2025 Invision Power Services, Inc.