谢谢你的时间!
我最近阅读了关于模板模式(在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中还是?
谢谢!
答案 0 :(得分:1)
一如既往 - 取决于:)
如果一个方法将在子类之间共享,那么将它放在父类(TemplateRequestBody
)中是有意义的。如果这些方法不会在子类之间共享,那么就不要把它们放在一起。
如果某些类将使用方法,也许您可以考虑mixin是否是存储该方法的好地方?此外,将它放在父类中也不是一个糟糕的主意。
希望有所帮助!