工厂方法模式 把 创造者类 和要生产的 产品类 分离。创建者是一个工厂类,其定义了产品生产的类方法。一般情况下,创建者类的每个子类实例化一个相应的产品子类。
下面是单个产品的实现代码:
<?php abstract class ApptEncoder{ abstract function encode(); } class BloggsApptEncoder extends ApptEncoder{ function encode(){ return "data encode farmat"; } } abstract class CommsManager{ abstract function getHeaderText(); abstract function getApptEncoder(); abstract function getFootText(); } class BloggsCommsManager extends CommsManager{ function getHeaderText(){ return "header"; } function getApptEncoder(){ return new BloggsApptEncoder(); } function getFooterText(){ return "footer"; } }
BloggsCommsManager::getApptEncoder()方法 得到一个ApptEncoder类型的对象。
产生其他的产品,只需要创建和BloggsCommsManager 类似的方法就行了。