设计模式之(一)——策略模式(Strategy Pattern)
来源:互联网 发布:淘宝迷你型三辊研磨机 编辑:程序博客网 时间:2024/06/18 17:17
博客差不多半年没动了,换了工作之后,面试过程中,知道了自己有哪些不足。不过都是记录在笔记上。还有个人对工作的一些思考,习惯的调整, 方向的确定等等。
设计模式会问,其实更会用,深入框架的话,这算一个基础。设计模式在博客被人写烂了。不过我还是要继续写,我笔记也记过,不过零零散散,不系统。还有重新定下心好好看书。决定慢慢地把这个系列写出来。读的是Head First的设计模式。
开篇的鸭子就是策略模式。模式这种东西不应该自己想死。而是多思考,为什么那样不行,那样写死有什么坏处。以后拓展会怎样。多思考,还是多思考。
以平时上班交通工具为例:
/** * @author Administrator * 上班交通工具的接口 */interface WorkVehicle {void go();}
/** * @author Administrator * 地铁 */public class Subway implements WorkVehicle{@Overridepublic void go() {System.out.println("too many people!");}}
public class Walk implements WorkVehicle{@Overridepublic void go() {System.out.println("too far!");}}
/** * @author Administrator * 一个程序员日常上班 */public class Programmer {public WorkVehicle vehicle;public WorkVehicle getVehicle() {return vehicle;}public void setVehicle(WorkVehicle vehicle) {this.vehicle = vehicle;}public void feeling(){vehicle.go();}public static void main(String[] args) {Programmer you = new Programmer();you.setVehicle(new Walk());you.feeling();you.setVehicle(new Subway());you.feeling();}}
策略模式定义了算法族,封装之后能够相互替换。让算法的变化独立于使用算法的客户。
相当于定义了多种交通方式,程序员相当于使用它的客户。可以替换不同的交通方式。
缺点很明显:就是你首先必须知道有哪些实现方式。而不是单单调用一个方法,系统会智能的帮你安排最完美的交通工具。
优点是比继承更好的方式,当交通方式除外还有买什么早餐这个东西的时候,你能将不同的东西组合在一起。具有很大的弹性。
你在翻外国的书籍的时候会发现一个很特别的特点,技术人员不是特别的呆板。各种搞怪卖萌。技术是一件很酷的东西,很庆幸一直以来能保持着这股热情。所以需要继续追寻下去。今天的策略模式比较简单,我们暂时就到这里~
阅读全文
1 0
- 设计模式之(一)——策略模式(Strategy Pattern)
- 设计模式 —— 策略模式(Strategy Pattern)
- Java设计模式——策略模式(Strategy Pattern)
- 设计模式——策略模式(Strategy Pattern)
- Java设计模式——策略模式(Strategy Pattern)
- 设计模式—策略模式(Strategy Pattern)
- 设计模式一:策略模式(Strategy pattern)
- 设计模式(一)The Strategy Pattern 策略模式
- 设计模式学习总结(一)策略模式Strategy Pattern
- 设计模式系列(一)策略模式(Strategy Pattern)
- 设计模式:策略模式(Strategy Pattern)
- 设计模式----策略模式(Strategy Pattern)
- 【设计模式】策略模式(Strategy Pattern)
- Head-first设计模式(一)——策略模式(Strategy Pattern)
- 设计模式之三 --- 策略模式(Strategy Pattern) (java)
- 设计模式之策略模式(strategy pattern)
- 设计模式之十:策略模式(Strategy Pattern)
- 设计模式之策略模式(Strategy Pattern)
- gdb设置条件断点
- java实现图的最小生成树问题
- (转)证券投资及财富管理市场创新趋势
- Winodws下编译OpenH264 for Windows
- Android ViewFlipper
- 设计模式之(一)——策略模式(Strategy Pattern)
- 设计模式(十七)Memento备忘录
- STM8S103之串口中断接收
- 设计模式之策略模式 一
- 高并发软件系统设计原理与实践(二)——性能指标
- mysql联合索引
- STM32定时器周期计算
- Value
- CSS选择器有哪些