0

Ruby でメソッドを空にするベストプラクティスはありますか?

つまり、サブクラスで、メソッドを何もオーバーライドしたくない場合、これ以外の構文はありますか?

class A
  def XX
    [..do something..]
  end
end

class B < A
  def XX
    # Do Nothing
  end
end

みたいなキーワードがあれば教えていただきたいです...

class B < A
  void_method :XX
end

...コードのメンテナンスがより明確になるためです。

4

2 に答える 2

4

ありません。実際には、より多くのキーストロークが発生します。

def XX; end

ただし、そのようなメソッドを簡単に追加できます

class A
  def self.void_method name
    define_method(name) {}
  end
end

または、より多くの場所で使用する場合は、これを object に追加することもできます。

于 2013-03-21T09:43:16.860 に答える
1

あなたの質問からは、あなたが何を望んでいるのかは明らかではありません。メソッドエラーを返さない場合は、次のようにします。

class B < A
  undef_method :XX
end

を返したい場合はnil、次のようにします。

class B < A
  def XX *args, &pr; end
end

レシーバーを返したい場合は、次のようにします。

class B < A
  def XX *args, &pr; self end
end
于 2013-03-21T09:56:37.063 に答える