再一次读 工厂模式
来源:互联网 发布:淘宝有货到付款吗 编辑:程序博客网 时间:2024/05/17 08:54
********
<?php
/*
* 抽象产品类
*/
abstract class ApptEncoder{
abstract function encode();
}
class BloggsApptEncoder extends ApptEncoder{
function encode(){
return "Apponitment data encode in BloggsCal format\n<br>";
}
}
abstract class CommsManager {
abstract function getHeaderText();
abstract function getApptEncoder();
abstract function getFooterText();
}
class BloggsCommsManager extends CommsManager {
function getHeaderText(){
return "BloggsCal header\n <br>";
}
function getApptEncoder(){
return new BloggsApptEncoder();
}
function getFooterText(){
return "BloggsCal footer\n<br>";
}
}
$fac = new BloggsCommsManager();
//客户端代码直接调用 生成的对象直接调用 产品抽象类的encode()方法,不需要知道具体的产品
$pro = $fac->getApptEncoder();
echo $fac -> getHeaderText();
echo $pro -> encode();
echo $fac -> getFooterText();
<?php
/**
* 抽象工厂模式
* @author GaoZhen'an <gaoce227@hotmail.com>
* @version $Id: 02.php $
*/
abstract class CommsManager {
abstract function getHeaderText();
abstract function getApptEncoder();
abstract function getTtdEncoder();
abstract function getContactEncoder();
abstract function getFooterText();
}
class BloggsCommsManager extends CommsManager {
function getHeaderText(){
return "BloggsCal header <br>";
}
function getApptEncoder() {
return new BloggsApptEncoder();
}
function getTtdEncoder() {
return new BloggsTtdEncoder();
}
function getContactEncoder() {
return new BloggsContactEncoder();
}
function getFooterText() {
return "BloggsCal footer <br>";
}
}
- 再一次读 工厂模式
- Java 中 再一次看单例模式
- 读工厂模式个人理解
- 设计模式-工厂设计模式读感
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- C++ 学习一
- linux下vi操作Found a swap file by the name 【转】
- CentOS 6.4
- Apache和mysql 的压力测试
- 反射
- 再一次读 工厂模式
- Mybatis 批量插入
- 标准库 String 类型
- 标准库vector类型
- php开发--WAMP Zend Framwork安装配置 【转】
- php函数 ~ mkdir的第三个参数
- 原型模式
- array_walk:第三个参数
- 简化tensorflow的启动