网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > PHP > 正文
php设计模式介绍之策略模式
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/07
下载{$ArticleTitle}原创论文样式

1 2 3 4 5 6 7 8 9 10 下一页

  在编写面向对象的代码的时,有些时候你需要一个能够自己根据不同的条件来引入不同的操作对象实例。例如,一个菜单功能能够根据用户的“皮肤”首选项来决定是否采用水平的还是垂直的排列形式,或者一个计费系统可以自行根据用户的收货地址来决定税率。

  一般来讲,一个控制菜单的对象实例包括了add(), delete(), 和 replace()等菜单元素;并通过set()进行配置,用render()来管理显示模式。无论你想生成什么样子的菜单,你都可以用同一个对象类来处理。不同菜单的对象实例只是一些方式函数的运算规则不同罢了,至少在刚才的例子里面render()函数是不同的。

  但是如果你需要增加菜单的显示模式种类,或者你需要根据用户的国家、省份等信息来判断菜单排列的顺序的时候,该怎么做呢?而且如果有许多的方式函数都是经常变化的,那么简单的类封装将变得复杂、难易理解和升级的。

  问题

  怎么轻松地改变对象实例的执行过程,因而在代码执行的时候动态地改变执行过程?一旦实现了这个功能,如果去编写这样的类定义从而让维护和升级变得非常简单呢?

  解决办法

  当一个类封装了多个操作的时候,对象实例可以动态地选择这些操作来进行,可以用策略模式来把对象本身和运算规则区分开来。或者,更简单的处理是类里面定义的方式函数用case语句来进行控制。当然更简单的方法是使用策略模式。

  策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性的思想。

  就在编程领域之外,有许多例子是关于策略模式的。如果我需要在清晨从家里去上班,我可以有几个策略可以考虑:我可以开车,乘坐公交车,走路,汽车或者甚至是搭乘直升飞机。每个策略都可以得到相同的结果,但是它们使用了不同的资源。选择策略的依据是费用,时间,使用工具还有每种方式的方便程度 。一个很好的策略也许在第二天就不能再被使用的,所以策略的选择是相对的。

(责任编辑:admin)

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号