Pomoc przy rozplanowaniu klasy i dobre praktyki

0

Będę tworzył aplikacje dziennika pojazdu w Javie. No to jak powinienem stworzyć klasę pojazd. Chcę aby pojazd składał się:

String nazwyPojazdu
String rokuProdukcji
String aktualnegoPrzebiegu
String opisu

No i jeszcze nie jestem pewien do końca jak zrobić wpisy przebiegów i wpisy dziennika. No wiem że muszę utworzyć dwie nowe klasy do ich przechowywania. No i pierwsze pytanie czy dodać te dwa atrybuty do klasy pojazd jako List <WpisPrzebiegu> i List<WpisDziennika>? I teraz drugie pytanie czy te dwie klasy WpisPrzebiegu i WpisDziennika powinienem utworzyć je w klasie pojazd czy na zewnątrz?

A trzecie pytanie dotyczy dobrych praktyk programowania. Czy walidacje danych z formularza powinienem umieścić w klasie pojazd czy w klasie formularza? Jeśli w pojeździe to powinno to być w konstruktorze czy w metodzie klasy?

dodanie znacznika <code class="java"> - @furious programming

0

sprecyzuj pytanie. jak mają wyglądać te wpisy odnośnie przebiegu dla jakiegoś pojazdu?

0

Wpisz przebiegu składał by się z daty wpisu oraz przebiegu zwykłego samochodu. Wpis dziennika z daty wpisu i jakiegoś opisu.

0

możesz to dodać do klasy Pojazd coś ala:

class Vehicle {

    private Set<VehicleJournalEntry> entries = new HashSet<>();
    
    public boolean addVehicleJournalEntry(VehicleJournalEntry e) {
        return entries.add(e);
    }

i to jest okey. A jak zachcesz użyć baz danych to możesz wgl to wywalić, bo będziesz mieć dwie encje odnośnie tych dziennikóœ zint vehicleId i many to one.

poza tym:

  1. czemu rok produkcji to nie java.util.Date a przebieg to nie Integer/Long ?
  2. walidację masz w kontrolerze , czasem może się zdarzyć że będzie potrzebna w serwisie, w klasie Pojzd nie powinno tego być poza ew. jakimiś validation annotations..
0

Jeżeli już mówimy o dobrych praktykach to:

GarryMoveOut napisał(a):
String rokuProdukcji
String aktualnegoPrzebiegu

jest bardzo złą praktyką ponieważ typy liczbowe należy trzymać jako typy liczbowe zaś rok warto trzymać jako datę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1