php 优惠券怎么设计模式,PHP设计模式——享元方式

PHP设计模式——享元模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。

享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。

UML类图:

16282034.png

角色分析:

享元工厂角色(FWFactory):创建并管理BlogModel对象。

所有具体享元父接口角色(BolgModel):接受并作用与外部状态。

具体享元角色(JobsBlog):具体变化点,为内部对象增加储存空间。

代码实现:

/**

* Created by PhpStorm.

* User: LYL

* Date: 2015/5/16

* Time: 12:00

*/

/**所有享元父接口角色

* Interface IBlogModel

*/

interface IBlogModel

{

function showTime();

function showColor();

}

/**乔布斯的博客模板

* Class JobsBlog

*/

class JobsBlog implements IBlogModel

{

function showTime()

{

echo "纽约时间:5点整
";

}

function showColor()

{

echo "

Jobs
";

}

}

/**雷军博客模板

* Class LeiJunBlog

*/

class LeiJunBlog implements IBlogModel

{

function showTime()

{

echo "北京时间:17点整
";

}

function showColor()

{

echo "

雷军
";

}

}

/**博客模板工厂

* Class BlogFactory

*/

class BlogFactory

{

private $model=array();

function getBlogModel($name)

{

if(isset($this->model[$name]))

{

echo "我是缓存里的
";

return $this->model[$name];

}

else

{

try

{

echo "我是新创建的
";

$class=new ReflectionClass($name);

$this->model[$name]=$class->newInstance();

return $this->model[$name];

}

catch(ReflectionException $e)

{

echo "你要求的对象我不能创建哦。
";

return null;

}

}

}

}

客户端调用代码:

header("Content-Type:text/html;charset=utf-8");

//------------------------门面模式测试代码------------------

require_once "./Flyweight/Flyweight.php";

$factory=new BlogFactory();

$jobs=$factory->getBlogModel("JobsBlog");

if($jobs)

{

$jobs->showTime();

$jobs->showColor();

}

$jobs1=$factory->getBlogModel("JobsBlog");

if($jobs1)

{

$jobs1->showTime();

$jobs1->showColor();

}

$leijun=$factory->getBlogModel("LeiJunBlog");

if($leijun)

{

$leijun->showTime();

$leijun->showColor();

}

$leijun1=$factory->getBlogModel("LeiJunBlog");

if($leijun1)

{

$leijun1->showTime();

$leijun1->showColor();

}

$aFanda=$factory->getBlogModel("aFanda");

if($aFanda)

{

$aFanda->showTime();

$aFanda->showColor();

}

优点:

1.减少运行时对象实例的个数,节省内存

2.将许多“虚拟”对象的状态集中管理

缺点:

一旦被实现,单个的逻辑实现将无法拥有独立而不同的行为

适用场景:

当一个类有许多的实例,而这些实例能被同一方法控制的时候,我们就可以使用享元模式。

PHP面向对象设计模式

乐得同城优惠券系统(乐券)是一个PHP+MySQL进行开发的同城优惠券领取(发布)网站源码。 系统简介: 1.乐得同城优惠券系统基于php+mysql运行,免费版仅支持php5.3; 2.系统和模板分离,您可以方便的修改模板页面; 3.系统文件自动缓存,大大节约服务器资源; 4.支持数据库在线备份、还原,支持数据库表内容替换,还可设置替换条件; 5.系统后台管理员权限设置,不同管理员分别设置不同权限; 6.系统后台管理员日志功能,记录管理员登录和操作记录; 7.整合QQ登录、微信登录、微信支付、微信模板消息最大化的方便运营者运营平台(部分功能需认证服务号才可使用); 注意:商家会员无法领取优惠券,仅会员组可领取 发布优惠券说明,请先在后台添加“商家”-“商家分类”和“券管理”-“券类型”两项分类,如果不添加分类将无法发布优惠券,会员注册后在“会员中心”选择“我要发券”,根据提示自行注册商家,管理员后台审核通过后,即可发券。 注意:免费版仅支持php5.3 乐得同城优惠券系统 更新日志: V2.2.5 20211004更新 [增加]优惠券副标题功能(后台编辑优惠券中修改); [增加]优惠券分时预告显示模块(系统会自动显示下个时间段将要开始的优惠券列表); [优化]优惠券排版; [优化]优惠券领取; [优化]优惠券发布; [优化]其他部分页面优化; [修复]部分商家页点击领券无反应; [修复]新建商家时店铺分享图生成失败; [修复]部分抽奖券点击时无反应; [修复]微信支付充值券点成功后返回页错误; [修复]未到领券时间时,付费券可以提前支付; [修复]其他部分小bug; V2.2.0 202010更新 [增加]联盟优惠券功能,将优惠券开启联盟券(可后台自定义联盟券名称)后,在后台添加多个商家进行核销,可多店铺任选一店核销或多店都可核销一次等,可用于活动券或锦鲤券等操作; [增加]会员提现限制,会员设置中设置满多少元可提现 [增加]专题聚合功能,聚合页将显示所有专题,并显示即将开始、进行中或已结束等提示; [增加]优惠券预告展示功能,系统会自动展示明日可领取优惠券列表,有助于提前进行优惠券活动预热; [增加]认领店铺功能,后台添加商家后会生成绑定码,前台未绑定商家会员,可输入绑定码后绑定当前商家并管理,绑定码绑定后即失效; [优化]首页优惠券展示优化; [优化]优惠券领取页优化; [优化]红包优惠券领取(取消在卡包中显示); [修复]后台发券上传图片时无法删除; [修复]抽奖券领取后,再次领取时会重复接收到中奖消息; [修复]其他部分小bug; V2.1.0 202006更新 [增加]后台发布优惠券功能,可对商家进行辅助发券; [增加]首页关注二维码,让会员更方便的关注公众号; [增加]优惠券广告图,针对提点高的优惠,可对界面全图展示; [增加]优惠券转向链接,可转向任意界面,提升广告收入,可配合优惠券广告图展示营销; [增加]分享领券,通过分享裂变,提升平台展示率; [优化]后台优惠券编辑页优化,增加富文本编辑,站长可图文结合,提升优惠券领取热度; [优化]后台商家编辑页优化; [优化]首页布局及数据调用优化,界面更美观,使用更便捷; [优化]优惠券领取页优化,展示更直观; [优化]前台会员页及商家管理页优化; [优化]前台PC页优化; [修复]细节性修复及其他bug修复; V2.0.2 20200526更新 本次更新修复了免费体验版中SQL注入漏洞! V2.0.1 202004更新 [增加]专题促销功能,可后台创建多个专题页面,专题页面可自定义; [修复]微信appid为空时部分页面上传功能失效; [修复]后台系统全局设置修改时无法保存; [修复]部分页面进入时无法定位; [修复]绑定QQ或微信帐户后解绑时出现错误; [修复]其他小BUG; [优化]其他细节性优化; V2.0.0 201910更新 [增加]会员卡包功能,领取的优惠券都可在卡包中查看(未使用、已使用、已过期、助力券等); [增加]会员收藏,会员可收藏自己喜欢的商家; [增加]会员积分兑换、抽奖、签到、红包专场等 ; [增加]优惠券页增加标签功能,后台可设置; [增加]优惠券页增加最近购买人展示,后台可设置显示数量; [增加]搜索页增加热门搜索关键词,后台可设置关键词; [增加]商家增加标签功能,后台可设置; [增加]商家后台运营数据图表功能,可显示最近7天运营数据,也可查看指定日期数据; [增加]商家店铺海报功能,平台后台可查看商家海报访问数据; [增加]商家门店资料增加营业时间,展示页面会自动判断是否营业中; [增加]商家后台优惠券详情中增加暂停投放功能; [增加]商家发布优惠券时可选择使用日期(周一至周日)、使用时间段(0时至24时),核销时会自动判断是否可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值