PHP

PHP Factory Methodパターン [PHPによるデザインパターン入門]

PHP

絶版されているけれど、Google booksで公開されているのが見れます。
https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false

1日1パターンってことで演習してアウトプットしていきます。

 

使いどころ

  • オブジェクト生成の為のAPIを定義し、クラスの継承を使って生成されるオブジェクトを切り替えることを目的とする。
    今回のサンプルコードではCSVかXMLの拡張子によって生成されるクラスを切り替える役割を工場側(ReaderFactory.class.php)が担う。工場側が拡張子を判定子して利用するクラスを作成する

 

実装のポイント

  • 利用側で利用するクラスを直接生成しない。
  • 利用する側はCSVFileReaderクラスとXMLFileReaderクラスを意識することはない。

 

Factory Methodのメリット

  • 拡張子が増えた場合も工場側(ReaderFactory.class.php)の処理を追加し、増えた拡張子を利用するクラスを作成するだけでよくなる。

 

data.csv

 

data.xml

 

 

Reader.class.php

 

 

CSVFileReader.class.php

 

 

XMLFileReader.class.php

 

 

ReaderFactory.class.php

 

 

index.php

 

/demo/Design-Pattern-Primer-by-PHP/FactoryMethod/

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)