ルビ文字列を使っていくつかの操作を行う予定のルビ プロジェクトに取り組んでいます。単純な操作 (単語数のカウントなど) もあれば、より複雑な操作 (特定の文字列が正しい言語であるかどうかのチェックなど) もあります。
これを実装する方法として考えられるのは、既存のメソッドを変更せずString
に追加のメソッドでクラスにパッチを適用し、やなどの動作を追加することです。"some string".word_count
"some string".cjk?
に基づく別のアプローチは、FileUtils
メソッドでいっぱいのクラスまたはモジュールを作成し、常に文字列をパラメーターとして使用することOddClassName.word_count("some string")
ですOddClassName.cjk?("some string")
。読みやすさのために、最初のほうが好きです。
最初の選択肢で説明されているように、基本クラスにモンキー パッチを適用すると、名前が競合する可能性があることを理解しています。ただし、これがライブラリではなくメイン アプリケーションである場合、まったく気にする必要はありませんか?
したがって、質問は次のとおりです。
- Ruby基本クラスにメソッドを追加するのは悪い習慣ですか? はいの場合、それはすべての場合ですか、それとも一部の場合のみですか?
- これを達成するための最良のアプローチは何ですか?
- 「OddClassName」の名前は何ですか?
代替案を提案してください。