您的位置:首页 > 编程语言 > PHP开发

php 设计模式(抽象工厂)

2017-07-08 10:43 387 查看
abstract ApptEncoder {
abstract function encoder();
}
class BloggsApptEncoder extends ApptEncoder{
function encoder()
{
return 'bapp';
}
}
class BloggsTtdEncoder extends ApptEncoder{
function encoder(){
return 'BloggsTtdEncoder';
}
}
class BloggsContactEncoder extends ApptEncoder{
function encoder(){
return 'BloggsContactEncoder';
}
}
abstract class CommsManagers{
abstract function getHeaderText();
abstract function getApptEncoder();
abstract function getTtdEncoder();
abstract function getContactEncoder();
abstract function getFooterText();
}
class BlogCommsManager extends CommsManagers{
public function getHeaderText(){
return 'Blog header';
}
public function getApptEncoder(){
return new BloggsApptEncoder();
}
public function getTtdEncoder(){
return new BloggsTtdEncoder();
}
public function getContactEncoder(){
return new BloggsContactEncoder();
}
public function getFooterText(){
return 'Blog Text';
}
}
改进型
//改进
abstract class CommsManager{
const APPT = 1;
const TTD = 2;
const CONTACT = 3;
abstract function getHeaderText();
abstract function make($flag_info);
abstract function getFooter();
}
class BlogsCommsManager extends CommsManager{
function getHeaderText(){
return 'Blog header';
}
function make($flag_info){
switch($flag_info){
case self::APPT :
return new BloggsApptEncoder();
case self::TTD:
return new BloggsTtdEncoder();
case self::CONTACT:
return new BloggsContactEncoder();
}
}
function getFooter(){
return 'Blogs Footer';
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: