<?php
//数据编码器类(product)产品类
abstract class ApptEncoder{
abstract function encode();
}
//日历格式的编码器
class BloggsApptEncoder extends ApptEncoder{
function encode(){
return "Appointment data encode in BloggsCal format <br>";
}
}
//Mega格式的编码器
class MegaApptEncoder extends ApptEncoder{
function encode(){
return "Appointment data encode in MegaCal format <br>";
}
}
//管理员类(creator)创建者类
abstract class CommsManager{
abstract function getHeader();
abstract function getApptEncode();
abstract function getFooterText();
}
//日历管理员类
class BloggsCommsManager extends CommsManager{
function getHeader(){
return "BloggsCal header <br>";
}
function getApptEncode(){
return new BloggsApptEncoder();
}
function getFooterText(){
return "BloggsCal footer <br>";
}
}
//Mega管理员类
class MegaCommsManager extends CommsManager{
function getHeader(){
return "MegaCal Header <br>";
}
function getApptEncode(){
return new MegaApptEncoder();
}
function getFooterText(){
return "MegaCal footer <br>";
}
}
用php实现工厂方法模式
本文介绍了抽象类ApptEncoder及其两个子类BloggsApptEncoder和MegaApptEncoder,它们分别用于日历和Mega格式的数据编码。同时,展示了抽象类CommsManager及两个实现类BloggsCommsManager和MegaCommsManager,这些类负责不同格式的头部、编码和尾部文本的生成。通过这两个模式,可以灵活地处理不同格式的日历数据。
摘要由CSDN通过智能技术生成