それは文脈と意味のある比喩の選択に大きく依存すると思います。たとえば、ActiveRecord はデータベース内のレコードを検索するためにクラス メソッド "find" を使用します。これは、"user_id を入力し、ユーザーを出力する" よりも意味のあるアイデアです。例えば:
User.find(user_id)
User.find_by_email(user_email)
変換については、通常、高階関数で使いやすいように変換メソッドを作成するのが好きです。たとえば ruby では、変換はto_*
インスタンス メソッドで行わFoo
れるBar
ことがよくありto_bar
ます。
foo = Foo.new(...) # make a new Foo
bar = foo.to_bar # convert it to a Bar
そして、一連の foo を変換するには、次のようにします。
bars = foos.map(&:to_bar)
Foo.parse(str)
文字列をオブジェクトに変換する機能も Ruby にはありがちです。
JavaScript の場合、クラス メソッド (標準 ml から取得) を使用するのが好きです。たとえば、次のようになります。
Foo.toBar = function(foo) {
return new Bar(...);
};
そして、その上にマッピングすることもできます (この例ではアンダースコアを使用しています):
var bars = _.map(foos, Foo.toBar);
標準 ML 規約は構造 (クラス) メソッドです。fn タイプの例:
Foo.toBar : foo -> bar
Foo.fromBar : bar -> foo
そして、次のように使用します。
val bar = Foo.toBar foo;
val bars = map Foo.toBar foos;