您的位置 首页 php

php设计模式(10)广告分男女-策略模式

【欢迎关注、分享、点赞或评论,您的一个举手之劳,就是最大的鼓励!】

连载技术文章,关注抢先看。

码字不容易,尊重版权,转载请注明出处:头条号|PHP在路上。


前言:

我们一起聊完了关于创建型的设计模式,共说了 工厂模式 单例模式 、原型模式和策略模式这四种,今天我们开始一起聊一聊关于行为型设计模式-策略模式。

内容概要:

1、什么是策略模式

2、怎么实现策略模式

3、示例代码

4、策略模式和简单工厂模式的区别。

一、什么是策略模式

单从名字上我们其实也可以了解各大概:所谓策略,就是多个预备方案,根据环境的不同,选择不同的策略(方法)。

按照我们的习惯,举个例子:

我曾经接过一个搭建电商网站的活,其中有一个需求,用户首页,弹出框问顾客的性别,然后根据顾客选择的性别,在某些广告位置推荐相应性别的广告产品。

这时候我们就会用到策略模式。

二、怎么实现策略模式

先看策略模式的UML图:

我们一起来分析一下:

1、我们需要有一个策略接口,它可以规范每一个策略需要实现的方法。

2、我们需要有个调用的类,实现两个功能,一是接收环境参数,二是 实例化 策略对象。

3、客户端需要传递环境参数。

晕,这不是简单工厂模式嘛?!别着急,我们一会再讨论两者的区别。

三、示例代码

策略代码的实现比较长一些,我分几个地方给大家展示。

我们可以访问 ,得到如下结果:

最新 男装

男装

这和我们预期的是一样的。不过这个代码还可以再优化一下,比如在60行开始,我们可以采用其他方式,减少ifelse的判断,增加代码的性感美观程度。

四、策略模式和简单工厂模式的区别

1、策略模式是根据对象方法来实现业务的分离。简单工厂采用的实例化对象的方式实现业务的分离。

2、工厂模式属于创建对象型的模式 ,它关注对象创建,提供创建对象的接口. 让对象的创建与具体的使用客户无关。

策略模式是对象行为型模式 ,它关注行为和 算法 的封装 。它定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。使得算法可独立于使用它的客户而变化。

不过,现在不理解没事,记得这个例子,等实际应用的时候就能知道其中的区别了。


不知道是否说明白了策略模式,如果说明白了,请回复666支持我,

如果没有的话,请在评论中指出,大家一起讨论。

文章来源:智云一二三科技

文章标题:php设计模式(10)广告分男女-策略模式

文章地址:https://www.zhihuclub.com/153060.shtml

关于作者: 智云科技

热门文章

网站地图