title: When is it ok to have both static and instance methods all in a class
body: <p>This is not specific to Ruby, but I happen to be using Ruby at the moment.<br>
  Here is a class that provides text printing functionality.</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Is it bad design to provide both instance and static methods in a class?</p>
  
  <p>Sometimes I would like to keep several instances of <code>Printer</code> lying around. Other times, I just need to say <code>Printer.print(text)</code> and just grab that text without bothering to store it for later, hence resulting in a static <code>print</code> method and an instance <code>print</code> method.</p>