ファクトリーパターン


XML形式のデータ、CSV形式のデータ、JSON形式のデータがあったとして、どれか一つのファイルを読み込ませて表示させるクラスを作りたい。そしてそのクラスを人に使ってもらいたい。



XML形式、CSV形式、JSON形式はそれぞれ別の方法で読み込む必要があり、どの方法を使って読み込むのか選択しなきゃならないと不便。

read_xml('filename.xml')
read_csv('filename.csv')
read_json('filename.json')



クラスを使うときに、ファイルの形式に関わらず読み出せたら便利じゃない?

read_file('filename.xml')
read_file('filename.csv')
read_file('filename.json')

しかも、やっぱりTSV形式も追加したいってなったときに処理してる部分は変えなくていい!(ファイル形式の判定は別のクラスでやってるから)

read_file('filename.tsv')


http://d.hatena.ne.jp/tksthdnr/20100217/1266422836
http://www.doyouphp.jp/phpdp/phpdp_02-2-1_factory_method.shtml
http://www.nulab.co.jp/designPatterns/designPatterns2/designPatterns2-2.html