这不是 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
方法。