Junior — Middle
Czy można wstawić dodatkową logikę biznesową wewnątrz metody pobierania wartości właściwości?
sobes.tech AI
Odpowiedź od AI
Zazwyczaj nie zaleca się umieszczania dodatkowej logiki biznesowej wewnątrz metody pobierania wartości właściwości (getter), ponieważ może to prowadzić do nieoczekiwanych skutków ubocznych i utrudnić zrozumienie kodu.
Gettery powinny być jak najbardziej proste i szybkie, zwracając wartość bez zmian lub skomplikowanych obliczeń.
Jednak, jeśli logika jest związana z obliczaniem wartości na podstawie aktualnego stanu obiektu (np. właściwość wyliczana), to jest to dozwolone.
Przykład dozwolonej logiki w getterze:
public class Order {
private int quantity;
private double pricePerUnit;
public double getTotalPrice() {
return quantity * pricePerUnit; // właściwość wyliczana
}
}
Jeśli logika biznesowa obejmuje zmianę stanu, wywoływanie zewnętrznych serwisów lub skomplikowane operacje, lepiej przenieść ją do osobnych metod.