これは Ruby に限ったことではありませんが、たまたま現在 Ruby を使用しています。
以下は、テキスト印刷機能を提供するクラスです。
class Printer
# some static methods
def self.fancy_print(text)
# do fancy formatting
end
def self.print(text)
fancy_print(text)
end
# some instance methods
def initialize(text)
@text = text
end
def print
#somehow call fancy_print(@text)
end
end
クラスでインスタンス メソッドと静的メソッドの両方を提供するのは悪い設計ですか?
Printer
時々、横になっているいくつかのインスタンスを保持したいことがあります。Printer.print(text)
それ以外の場合は、後で使用するために保存する手間をかけずに、そのテキストを言うだけで取得する必要があるため、静的print
メソッドとインスタンスprint
メソッドが作成されます。