rubyのclassとmoduleの使い分け


railsでアプリをいくつか作りました。

classは慣れてきたのですが、moduleがいまいちわかりません。  
classと違いが無いように見えるのですが何が違い、どのように使い分けるのでしょうか。




複数のclassにまたがるメソッドを継承ではなく合成したいときにmoduleを作ります。

class => インスタンス化できる。継承できる。  
module => インスタンス化できない。名前空間とメソッドの入れ物。メソッドをmixinできる。

railsでは、ActiveSupport::Concernを使ってmoduleを作ることが多いです。

[ [Rails] ActiveSupport::Concern の存在理由 - Qiita
](http://qiita.com/castaneai/items/6dc121ce6ff100614f42)

例えばファイルをアップロードするコントローラでアップロード機能だけをconcernとして実装すると汎用性の高い（使い回すことができる）アプリケーションといえるでしょう。

