我正在开发一个 ruby 项目,我们计划在其中使用 ruby 字符串进行一些操作。有些操作很简单(比如计算单词的数量),有些则更复杂(比如检查给定的字符串是否使用正确的语言)。
实现这一点的一种可能方法是String
使用额外的方法修补类,而不修改任何现有的方法,并添加类似"some string".word_count
和的行为"some string".cjk?
。
另一种基于方法的方法FileUtils
是创建一个充满方法的类或模块,并始终使用字符串作为参数,例如OddClassName.word_count("some string")
and OddClassName.cjk?("some string")
。由于可读性,我们更喜欢第一个。
我知道猴子修补第一个替代方案中描述的基本类可能会发生名称冲突。但是,如果这是主应用程序,而不是库,我应该担心它吗?
所以,问题是:
- 向 ruby 基类添加方法是一种不好的做法吗?如果是,是在所有情况下还是仅在某些情况下?
- 实现这一目标的最佳方法是什么?
- 'OddClassName' 的名称可能是什么?
请提出任何替代方案。