Vielen Dank für Ihre Zeit!Vorlage Methode Muster, wo gemeinsame verwendete Funktionen zu definieren
Ich habe vor kurzem über Vorlagenmuster (in Ruby) gelesen und möchte dieses Muster in meinen Codes verwenden.
Meine Frage ist "wo einige häufig verwendete Funktionen zu stellen".
Angenommen, ich habe TemplateRequestBody, JSONRequestBody und XMLRequestBody wie folgt.
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
In diesem Beispiel add_new_line_to_tail()
würde von allen untergeordneten Klassen verwendet werden; escape_double_quotes()
würde nur von einigen der untergeordneten Klassen verwendet werden.
Wo sollte ich diese beiden Funktionen implementieren? In TemplateRequestBody oder?
Danke!
Statt erhöhen: 'raise "genannt abstrakte Methode: pretty_format"' Sie Rubys eingebaute in 'NotImplementedError' verwenden können:' erhöhen NotImplementedError.new ('pretty_format') ' –
Dank @Ile Eftimov für diese Informationen! Ich kenne diese Idee nicht vorher. Ich werde das untersuchen und in meinen Codes implementieren. – mCY
Shameless Stecker: Ich habe über Ruby und Template-Methode-Muster gebloggt, können Sie es [hier] (https://ieftimov.com/template-method-pattern-in-ruby) überprüfen :) –