gpt4 book ai didi

ruby - 模板方法模式,在哪里定义常用函数

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:46 24 4
gpt4 key购买 nike

感谢您的宝贵时间!

我最近阅读了模板模式(在 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 或?

谢谢!

最佳答案

一如既往 - 这取决于 :)

如果一个方法将在子类之间共享,将它放在父类 (TemplateRequestBody) 中是有意义的。如果方法不会在子类之间共享,则不要放置它们。

如果方法将被一些类使用,也许你会想mixin是否是存储该方法的好地方?此外,将它放在父类中也不是一个糟糕的主意。

希望对您有所帮助!

关于ruby - 模板方法模式,在哪里定义常用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38291838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com