Prawo Demeter

Niedawno wysłałem pytanie o stackoverflow, w którym zrobiłem coś, co miało wpływ

@period_registration.period.event

Zasugerowano jednak, aby zrobić coś takiego:

def event
  period.event
end

@period_registration.event

W moim ogólnym sensie wydaje się, że jest to trochę ciężkie. Patrząc na to poprzednie ogłoszenieJak zastosować do tego prawo Demeter? pokazuje, jak ciężkie może to być, jeśli zrobisz to dla każdego związku.

Jak powszechna jest praktyka w szynach? Uważam, że nawet jeśli jest to technicznie słuszne, jeśli nie jest to częścią kultury szyn, to wydaje się, że to wyrzuci ludzi. I, co ważniejsze, w rzeczywistości kod jest mniej podatny na konserwację, ponieważ inni programiści myślą, że marnujesz czas na wszystkie te metody pomocy.

Powiedzmy, że chciałbym to zasugerować, czy @ period_registration.event.city, gdzie miasto jest atrybutem zdarzenia, a nie oddzielny obiekt również narusza LoD lub czy muszę pisaćINNE metoda, abym mógł zrobić: @ period_registration.city

questionAnswers(1)

yourAnswerToTheQuestion