策略模式

本文介绍了策略模式的概念及其在软件设计中的应用。策略模式允许在运行时选择算法,通过将算法封装成独立的类来实现。文章提供了PHP代码示例,展示了如何在不同浏览器环境下选择合适的打印页面策略。

在此模式中,算法是从复杂类提取的,因而可以方便地替换。例如,如果要更改搜索引擎中排列页的方法,则策略模式是一个不错的选择。思考一下搜索引擎的几个部分 —— 一部分遍历页面,一部分对每页排列,另一部分基于排列的结果排序。在复杂的示例中,这些部分都在同一个类中。通过使用策略模式,您可将排列部分放入另一个类中,以便更改页排列的方式,而不影响搜索引擎的其余代码。

策略模式(Strategy Pattern)

策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。

策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。


<?php


    abstract class baseAgent { //抽象策略类

        abstract function PrintPage();

    }

    //用于客户端是IE时调用的类(环境角色)

    class ieAgent extends baseAgent {

        function PrintPage() {

            return 'IE';

        }

    }

    //用于客户端不是IE时调用的类(环境角色)

    class otherAgent extends baseAgent {

        function PrintPage() {

            return 'not IE';

        }

    }

    class Browser { //具体策略角色

        public function call($object) {

            return $object->PrintPage ();

        }

    }

    $bro = new Browser ();

    echo $bro->call ( new ieAgent () );

    

?>


在我理解中,其实就是 我要买副眼镜,我可以通过实体店,网购,代购等途径得到眼镜,最终目的都是一样的 只不过可以有许多种不同的途径,而策略模式就是意在n多种方法中 我们去选择一种最优的。

转载于:https://my.oschina.net/bo081220/blog/650502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值