php 设计模式的学习与实用[一 Strategy ]
来源:互联网 发布:为什么淘宝三国杀元宝 编辑:程序博客网 时间:2024/06/04 18:42
先从读书开始,比较好入门的一本是 headfirst 讲得比较贴切易懂.
第一种模式 Strategy
相关特点:
一“针对接口编程”,关键就在多态。利用多态,程序可以针对超类型编程,执行时会根据
实际状况执行到真正的行为,不会被绑死在超类型(duck)的行为上.
二
这样的设计, 可以让飞行和呱呱叫的动作被其他的对象复用,因为这些行为已经与鸭子类无关了。而我们可以新增一些行为, 不会影响到既有的行为类,也不会影响“使用”到飞行行为的鸭子类
三 在运行时想改变鸭子的行为,只需调用鸭子的setter方法就可以
如果单独利用继续来实现,将会有以下问题.
A. 代码在多个子类中重复。
B. 运行时的行为不容易改变。
C. 我们不能让鸭子跳舞。
D. 很难知道所有鸭子的全部行为。
E. 鸭子不能同时又飞又叫。
F. 改变会牵一发动全身,造成其他鸭子不想.
以上为看了 headfirst 后的自我总结,刚开始写blog 很多东西都写得很生梳,才发现想表达出想法不是件容易的事,以后要多努力了。
下面我讲讲我自己在应用到strege 模式的一个相关的例子
一个表单元素.
上图红色框内的,我将之命名为表单元素.
在后台中通常在添加数据,修改数据,查询数据时,会使用表单元素。
而表单元素的展示形式是多种多样的 [单选,复选,下拉,输入框,隐藏域,文本域,swf上传,普通上传,日历控件,编辑器]
同时,在复选表单时,数据源也是多种多样的。[可以来自json 数据,xml数据,数据库查询,配置的数组]
同时,一个表单元素,还需要有相关的validate 来验证他的输入合法性。 基于篇符关系,我简单讲讲我是如何封装前者的。
关于显示的封装.
关于字段类的封装。
//测试使用
备注: 为了更关注表达strege模式,上述代码隐去了大量的实际的代码,而在实际过程中,使用也是在这两个接口的基础上不断的包装成了服务,我自已在实践中的感觉是这两个接口挺有用,挺好用的,在后台上的插入,修改,和查询上带来了大量的帮助。剩下的,就是一些体力活了
- php 设计模式的学习与实用[一 Strategy ]
- 设计模式学习总结(一)策略模式Strategy Pattern
- 设计模式一 前言与策略模式(strategy)
- 设计模式学习20 Strategy
- PHP 设计模式 策略模式(Strategy)
- 我的模式之路一:策略模式(Strategy)学习
- 设计模式(一)Strategy - 策略模式
- 设计模式一之策略模式(strategy)
- Strategy策略模式 ---设计模式学习
- 设计模式学习--策略模式(Strategy Pattern)
- 设计模式学习-Strategy策略模式
- 设计模式学习笔记--策略(Strategy)模式
- 设计模式学习--策略模式(Strategy Pattern)
- 设计模式之策略模式strategy学习
- 设计模式与实例代码:Strategy模式
- 设计模式笔记一(strategy pattern)
- 深入浅出设计模式-学习笔记(1) Strategy
- 设计模式学习—Strategy(策略)
- 王利芬:我创办优米网犯的几个错误
- 没想到这么多年了这个ID还能用
- 任意数的加减,中间可以放负号,加括号
- ubuntu 我的选择
- 电脑开关机声音设置
- php 设计模式的学习与实用[一 Strategy ]
- get vs post
- 汇编语言速查手册
- oracle中scott/tiger、sys、SYSDBA、system都是什么用
- C++学习笔记---浅谈指针
- 成功在于每天养成的习惯
- Oracle10g自动归档(archive)及其路径设置(log_archive_dest、log_archive_dest_n)
- as3之设计模式
- sysdba登录oracle的schema是sys