![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
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 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:48 |