デメテルの法則は非常に強力な概念のようです。それが、優れた保守可能なオブジェクト指向コードを作成するのにどのように役立つかを理解できます。
ビュー内の関連付けられたオブジェクトの属性にアクセスする必要があるたびに、デリゲート メソッドを作成することを提案する人もいます。ビューでこのようなものを書く代わりに
@order.customer.name
次のコードを記述します。
# model
class Order < ActiveRecord::Base
belongs_to :customer
delegate :name, :to => :customer, :prefix => true
end
#view
@order.customer_name
一方、ビューでモデルを指示するべきではなく、ビューのアンダースコアとドットを交換するためだけにデリゲートなどのメソッドをモデルに追加するべきではないと主張する人もいます。
ビューでデメテルの法則に違反する場合、モデルにデリゲート メソッドを記述することはベスト プラクティスと見なされますか?