<< 前 ホーム 次 >>

bakaid: 20080115

自分が書くのはかなりムボーなんだけど。

自分としては、関数とオブジェクトの違いって粒度で
しかない感じ。

たとえば、Procを使えば:

def return_func
  return proc{p true}
end

だし、特異メソッドを使えば:

def return_func
  func = Object.new
  def func.call
    p true
  end
  return func
end

だし、もちろん、フツーのクラスだってあるし:

class Func
  def call
    p true
  end
end

def return_func
  return Func.new
end

どれを選ぶかは好みもあるけど、やっぱりそのコンテキストに
合った粒度というのが大きいんじゃないかな。

たくさんの小さい関数をテーブルで管理したいとかだったら
Procだろうし。2、3個のメソッドを持たせたいんなら
特異メソッドだろうし。クラスとして切り出す意味が
あるんならクラスを選ぶだろうし。

--

まぁ、FPが流行ってるのをどうこういうつもりはないん
だけど。OOPにだってそれなりに歴史はあって、それなりに
知恵は蓄積されてるよ (笑)。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails