5

Rails アプリケーションの場合: モデル オブジェクトにマップされる null オブジェクトに名前を付けるための命名規則はありますか?

例:

#app/models/blog.rb
class Blog < ActiveRecord::Base
end

#app/models/null_blog.rb
class NullBlog # Null Objects are POROs, correct?
  def title
    "No title"
  end
end

# so to implement it I can do this:
blogs = ids.map{|id| Blog.find_by(id: id) || NullBlog.new}
# which allows me to do this and it works, even if some of those ids did not find a blog
blogs.each{|blog| blog.title}

NullBlog従来型ですか?

Avdi Grimm によるこの記事も、 Sandi Metz によるNothing is Somethingプレゼンテーションも、null オブジェクトの命名規則について言及していません。

4

1 に答える 1

5

現在、主流のコンベンションはありません。おそらく、Null オブジェクト パターン自体がまだ広く使用されていないためです。私が見つけた命名ガイドラインへの唯一の参照は、ThoughtBot Style Guideからのもので、命名規則の例として使用されています。

実装するパターンではなく、ドメインの概念に基づいてクラスを命名することをお勧めします (例: Guest と NullUser、CachedRequest と RequestDecorator など)。

あなたの場合、「ヌル ブログ」の「ドメイン言語」を見つけることが問題になります。これらの用語を見つけるための最善の方法は、単にドメイン ユーザーとそのトピックについて話し、彼らが使用する名詞を書き留めることです。このアプローチは、本Object Thinkingで概説されています。

于 2015-10-11T08:21:19.573 に答える