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

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

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

php广告位php设计模式10告白分男女策略模式 Vue.js

序言:

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

内容概要:

1、什么是策略模式

2、怎么实现策略模式

3、示例代码

4、策略模式和大略工厂模式的差异。

一、什么是策略模式

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

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

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

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

策略:两个,男士广告产品,女性广告产品

环境:用户输入性别

结果:选择帅哥,广告位显示男士产品;选择美女,广告位现实女士产品。

二、怎么实现策略模式

先看策略模式的UML图:

我们一起来剖析一下:

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

2、我们须要有个调用的类,实现两个功能,一是吸收环境参数,二是实例化策略工具。

3、客户端须要通报环境参数。

晕,这不是大略工厂模式嘛?!
别焦急,我们一会再谈论两者的差异。

三、示例代码

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

我们可以访问 http://localhost/strategy.php,得到如下结果:

最新男装

男装

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

四、策略模式和大略工厂模式的差异

1、策略模式是根据工具方法来实现业务的分离。
大略工厂采取的实例化工具的办法实现业务的分离。

2、工厂模式属于创建工具型的模式 ,它关注工具创建,供应创建工具的接口. 让工具的创建与详细的利用客户无关。

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

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

不知道是否解释白了策略模式,如果解释白了,请回答666支持我,

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