Ogranicenje kreiranja objekata klase

Ogranicenje kreiranja objekata klase

offline
  • Pridružio: 29 Maj 2014
  • Poruke: 54

Pozdrav, da li postoji nacin da ogranicim broj objekata klase?
Npr imam fakultet koji prima 200 studenata,sada da kada se kreira 200 studenata da ja ogranicim da vise ne mogu da se upisuju studenti?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14597
  • Gde živiš: Niš

Moguće je ograničiti broj instanci klase. Postavi konstruktore na private i kreiraj statičku funkciju koja vraća objekat te klase, kao i statičku promenljivu čiju ćeš vrednost da proveravaš u pomenutoj funkciji, i ukoliko je ona manja od 200 kreiraš i vraćaš objekat, dok u suprotnom vraćaš null.

Svakako, ovako nešto je sasvim nepotrebno. Ukoliko je broj studenata 200, jednostavno napraviš niz od 200 objekata klase Student i to je to.



offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1627
  • Gde živiš: Pancevo

Kao sto ti je vec napomenuto, napravi niz koji ces da prosledis kao argument konstruktoru. U klasi definisi field int instances ili max_students = 200 i dodaj field total_sudents = 150 tako da na kraju ih u nekoj metodi uporedis i bacis exception ako je 200++ . Jednostavno vrtis logiku. Nemoj da ogranicavas klasu na odredjen broj instanci jer je to jako losa praksa.

offline
  • Pridružio: 29 Maj 2014
  • Poruke: 54

Hvala vam! Very Happy

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14597
  • Gde živiš: Niš

Kako si na kraju rešio? Smile

offline
  • Pridružio: 29 Maj 2014
  • Poruke: 54

Ogranicio sam niz na 20,pa sam proveravao u petlji kada se kreira novi objekat Very Happy

Ko je trenutno na forumu
 

Ukupno su 564 korisnika na forumu :: 35 registrovanih, 7 sakrivenih i 522 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Petar, _Rade, awathorn, Boris90, cincarin, crnitrn, Despot1, dragoljub11987, goxin, Insan, Jester, Klecaviks, Lucije Kvint, Lucky_Bastard, mercedesamg, MilosKop, nik8282, Regrut Boskica, renoje2, repac, riva, rovac, S-lash, stalker, stegonosa, tanakadzo, The Joker, vathra, Vlad000, Vlada1389, W123, Warhawk, Webb, wizzardone, YU-UKI