Converter Constructor Method

オブジェクトの変換に関するパターンです。*1
あるオブジェクトの持つ情報を元にして別のオブジェクトを新しく生成したい場合は、変換先のオブジェクトに変換元のオブジェクトを引数として持つコンストラクタを作りましょう。

class Pathname
  def initialize(str)
    ...
  end
end

*1:本パターンは引用元のケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集では、「異なるプロトコルのオブジェクトへ変換する」際に使用するパターンとして紹介されていますが、前述のConverter Methodパターンの解釈に伴い、こちらも自分なりの解釈に基づき紹介しています。