Das Gesetz von Demeter

Ich habe kürzlich eine Frage zum Stackoverflow gestellt, bei der ich etwas getan habe, um etwas zu bewirken

@period_registration.period.event

Es wurde jedoch vorgeschlagen, dass ich Folgendes mache:

def event
  period.event
end

@period_registration.event

Mein allgemeiner Eindruck ist, dass dies ein wenig unbeholfen wirkt. Schauen Sie sich diesen vorherigen Beitrag anWie wende ich das Demeter-Gesetz an? zeigt, wie schwer das werden kann, wenn Sie dies für jeden Verein getan haben.

Wie üblich ist dies bei Schienen? Ich bin der Meinung, dass, auch wenn dies technisch gesehen das Richtige ist, wenn es nicht Teil der Rails-Kultur ist, es den Anschein hat, als würde dies die Leute abschrecken. Und, was noch wichtiger ist, machen Sie den Code weniger wartbar, da andere Entwickler glauben, Sie verschwenden Ihre Zeit mit all diesen Hilfsmethoden.

Nehmen wir an, ich wollte dies implizieren, würde @ period_registration.event.city, wobei city ein Attribut des Ereignisses ist, nicht ein separates Objekt, das ebenfalls gegen die LOD verstößt, oder müsste ich schreibenEIN WEITERER Methode also könnte ich tun: @ period_registration.city

Antworten auf die Frage(1)

Ihre Antwort auf die Frage