Factoryメソッドの亜流的なもの
<?php abstract class Class_super { static function factory(mode) { if('a' === mode) { return new Class_sub_a(); } else { return new Class_sub_b(); } } }
サブクラスa
<?php class Class_sub_a extends Class_super { 略 }
サブクラスb
<?php class Class_sub_b extends Class_super { 略 }
呼び出し
<?php $o_class = Class_super::factory('a');
デザパタとかぜんぜん理解してないけど、この手法ってどうなんだろうか。
メリットとしては呼び出し元でnewするクラスを分岐させる為の条件文を書かなくていいからソースがすっきりする気がする!