Wypożyczalnia samochodów - jak operować na tym samym obiekcie

0

Cześć, tworzę drugi wątek, bo tamten mogłem opisać trochę niezrozumiale.
Tworzę wypożyczalnie samochodów.
Stworzyłem dwie klasy - **DataGetter **(która ma w sobie metody pobierające wymagane dane do metod z DataBase np. dla klienta są potrzebne dane: imie, nazwisko... a dla samochodu: marka, rok produkcji) oraz RentalCarEngine. Mam problem z operowaniem na tym samym obiekcie, w wyniku czego w klasie Main tworzę jeden obiekt Klienta i przesyłam go do dwóch metod z dwóch różnych klas. Wygląda to tak:


package CarRental;
 
import DB.DataBase;
 
import java.sql.SQLException;
 
public class Main {
 
    public static void main(String[] args) throws SQLException {
        Client client = new Client();
        Car car = new Car();
        CarRentalEngine carRentalEngine = new CarRentalEngine();
        DataGetter dataGetter = new DataGetter();
 
 
        dataGetter.getDataClient(client);
        carRentalEngine.createNewCustomer(client);
       
    }
}

Nie wiem czy to jest dobry sposób, jeżeli nie to w jaki sposób tego uniknąć.
Klasa DataGetter

public class DataGetter {
    Scanner input = new Scanner(System.in);

    void getDataClient(Client client) {
        System.out.print("name: ");
        client.setName(input.next());
        System.out.print("surname: ");
        client.setSurname(input.next());
        System.out.print("city: ");
        client.setCity(input.next());
        System.out.print("house number: ");
        client.setHouseNumber(input.nextInt());
        System.out.print("street: ");
        client.setStreet(input.next());
        System.out.print("pesel number: ");
        client.setPeselNumber(input.nextLong());
        System.out.print("rent date: ");
        client.setRentDate(input.next());
    }

Klasa RentalCarEngine

public class CarRentalEngine {
    private DataBase dataBase = new DataBase();

    public CarRentalEngine() throws SQLException {
    }

    void createNewCustomer(Client client) throws SQLException {
        dataBase.insertNewCustomer(client.getName(), client.getSurname(), client.getStreet(), client.getHouseNumber(), client.getCity(), client.getPeselNumber(), client.getRentDate());
    }

Myślałem o tym, by metoda getDataClient tworzyła nowy obiekt klienta od razu i jakoś go przesłać do tych pozostałych klas, ale nie mam pojęcia jak. Bo metoda dataBase.insertNewCustomer potrzebuje konkretnych danych, a nie całego obiektu.

0

Poczytaj o wzorcach kreacyjnych

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