gdzie wypełniać pola klas

0

Hej mam takie drobne pytanie odnośnie wypełniania pola klas.
Przyjmijmy że mamy klasę Transfer (która jest oznaczona adnotacją @Entity).
Gdzie powinienem wypełniać pola tej klasy? czy powinienem to robić zawsze w tej encji czy może w poszczególnych serwisach (które tej klasy używają)?
Generalnie chodzi mi o przypadek gdzie pola klasy będą będą wypełniane danymi pochodzącymi z innych miejsc czyli:

Mam klasę transfer:

@Entity
public class Transfer {
 private long fromId;
 private long toId;
}
 

przyjmijmy że mam dwa serwisy: userService oraz productService.

w userService do wypełnienia pól używam przyjmijmy klasy User czyli:

 
Transfer tr = new Transfer();
setFromId(user.getFromId())
setToId(user.getToId())

w productService również mam tworzenie transfery tylko tym razem używam danych z innego miejsca czyli:

Transfer tr = new Transfer();
setFromId(product.getFromId())
setToId(product.getToId())
 

Moje pytanie gdzie najlepiej umieścić wypełnianie pól klasy transfer?
Czy zostawić to w serwisach czy może lepszym rozwiązaniem będzie umieścić to w klasie modelu Transfer(czyli np stworzyć dwa konstruktory przyjmujace jako argument klasę User oraz Product)?

Jeżeli takim miejscem jest klasa transfer to czy nie będzie to nadmiernym zaśmiecaniem klasy modelu (takich konstruktorów może być mnóstwo).

UPDATE:
zapomniałem wspomnieć że ustawiane pola w klasie Transfer mogą się róznić w zależności od tego czy tworzyłem ta klasę za pomocą user czy product (pola w transfer mają tylko wartość poglądową ).

1

Moja propozycja to:

  1. Klasa assemblera, która przyjmuje odpowiedni obiekt i wypluwa transfer
  2. Jeśli Transfer ma zawsze ustawiane te same pola niezależnie jaka klasa przyjdzie to może jakieś interfejsy powydzielać i na nich operować?

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