那有没有一种方法可以实现多条件判断,但又不会降落代码的质量呢?答案是有的,那便是我们本日要讲的策略模式

什么是策略模式

严格来讲策略模式不是一种方法,而是一种编码思想。
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互更换,让算法独立于利用它的客户而独立变革。

利用场景

策略模式的利用场景常用的有以下几种:

大话php的开发模式开辟者手册年夜话设计模式之策略模式 React

针对同一类型问题的多种处理办法,仅仅是详细行为有差别时。
须要安全地封装多种同一类型的操作时。
同一抽象类有多个子类,而又须要利用 if-else 或者 switch-case 来选择详细子类时。
详细实现

由于其独特的优点,策略模式被很多开拓者采取,包括Java、Python、PHP等。
比如,PHP中的PDO,Java AWT 中的 LayoutManager。
不过,虽然开拓措辞不同,但实现逻辑操作基本同等。
那下面就以PHP为例,作大略解释。

首先我们创建一个Love接口,如下:

然后,根据Love接口创建不同性情的人,如下:

第三步,创建拥有不同性情属性的GirlFriend类,如下:

到此时,我们就完成了策略模式的准备事情了。

接下来,我们看看如何实行。

由于,sajiao这个行为是跟性情有关系的,因此,我们须要先创建一个性情实例,如下:

然后,将这个实例,传入grilfriend这个实例中,并实行sajiao这个行为,如下:

这样,一个大略的策略模式的PHP方案便是实现完成了。
看看代码,是不是觉得很简洁呀。
往后碰着类似场景,你也可以这么做,再也不要一上来便是if…else或者switch…case了。

末了说一句,如果你们有其他措辞(如Java、Python等)的实现方案,你们可以在文章后留言,到时候我们可以一起学习学习。

本文由\"大众编码之道\公众原创,转载请注明出处。