ありがとう!テンプレートメソッドパターン、共通の使用関数を定義する場所
私は最近、(Rubyで)テンプレートパターンについて読んで、私のコードでは、このパターンを使用します。
私の質問は、「どこいくつかの一般的に使用される機能を置くこと」です。
は、私は以下のようTemplateRequestBody、JSONRequestBodyとXMLRequestBodyを持っていると言います。
class TemplateRequestBody
def pretty_format
raised "called abstract method: pretty_format"
end
end
class JSONRequestBody < TemplateRequestBody
def pretty_format
# pretty format JSON
add_new_line_to_tail();
end
end
class XMLRequestBody < TemplateRequestBody
def pretty_format
# pretty format XML
escape_double_quotes();
add_new_line_to_tail();
end
end
この例では、add_new_line_to_tail()
はすべての子クラスで使用されます。 escape_double_quotes()
は、いくつかの子クラスによってのみ使用されます。
どこで私は、これらの二つの機能を実装する必要がありますか? TemplateRequestBodyまたは?
ありがとうございます!
代わりの調達: ' "抽象メソッドと呼ばれる:pretty_format" 昇給:この情報については、' NotImplementedError.new( 'pretty_format')を上げる ' –
おかげ@Ile EftimovあなたはRubyの組み込みの' NotImplementedError'を使用することができます ' を!私はこのアイデアを知っていません。私はそれを調べ、私のコードで実装します。 – mCY
恥知らずなプラグイン:私はRubyとTemplate Methodパターンについてブログましたが、あなたは[こちら](https://ieftimov.com/template-method-pattern-in-ruby)それをチェックアウトすることができます:) –