Witam,
czytam książkę Czysty Kod - podręcznik dobrego programisty i mam kilka pytań do zaawansowanych programistów.
- Rzeczywiście piszecie funkcje z jedną operacją? Tam jest przykład:
public void pay() {
for (Employee e : employees) {
if (e.isPayday()) {
Money pay = e.calculatePay();
e.deliverPay(pay);
}
}
}
I według tej książki powinno być:
public void pay() {
for (Employee e : employees)
payIfNecessary(e);
}
private void payIfNecessary(Employee e) {
if (e.isPayday())
calculateAndDeliverPay(e);
}
private void calculateAndDeliverPay(Employee e) {
Money pay = e.calculatePay();
e.deliverPay(pay);
}
Rzeczywiście w dużych firmach tak piszecie kod?
- Odwoływanie się do rodziców/dzieci itp
Nie mogę teraz przykładu znaleźć ale chodziło o coś takiego:
object.getA().getB().getC();
Żeby tego unikać, więc jak to robić? W klasie A zaimplementować to przejście do C czy o co właściwie chodzi? Czy w ogóle nie projektować systemów, które mają takie połączenia?
- Zamiast instrukcji switch stosować polimorfizm. Tutaj niestety nie było przykładu chociaż 2 razy o tym było w książce. O co tu może chodzić?