读书笔记-----------------------
策略模式:定义一组算法族,分别封装起来,让各个算法之间可以相互替换。此模式让算法的变化独立于使用算法的客户。
面向对象(OO)的四个基本概念是:抽象、封装、继承、多态。
继承的好处是实现了代码的复用。
软件设计原则1:多用组合,少用继承。使用组合的方式可以实现代码的分割,使代码有更大的弹性,更好地提高了复用性。
软件设计原则2:封装变化--把软件中那些在将来可能产生变化的地方独立出来,与其他部分分割以减少变化时对它们的影响。这样的设计可以使系统变得有弹性,更好地应对变化。
软件设计原则3:针对接口编程,而不针对实现编程。依据该原则,声明一个变量时要把它声明为超类型(接口或抽象类),而不是实现类。
我的理解-------------------------
1 将基类作为抽象类,其中包含行为接口。
2 在实现时,具体类继承基类,并且构造了实现接口的类的对象。
3 在选择上述具体对象时,实质就是在算法族中选择。表现为一种策略。
4 抽象类继承是为了将不变的部分尽可能进行复用;接口部分是将可能变化的部分进行封装,提供选择。
5 可以这样做的原因:接口上转型。
代码实例-------------------
public abstract class Car { RunBehavior rb; public void go() { rb.go(); } public void setRunBehavior(RunBehavior rb) { this.rb = rb; } public abstract void display(); } public class Bus extends Car { public Bus() { rb = new RunWithGasoline(); } @Override public void display() { // 公共汽车 } } public class CarModel extends Car { public CarModel(){ rb=new RunNoWay(); } @Override public void display() { // 汽车模型 } } public interface RunBehavior { public void go(); } public class RunWithGasoline implements RunBehavior { public void go() { // 用汽油驱动 } } public class RunWithElectricity implements RunBehavior { public void go() { // 用电力驱动 } } public class RunNoWay implements RunBehavior { public void go() { // 不能行使 } } //现在新增一种玩具电动车: public class ToyCar extends Car { public ToyCar(){ rb=new RunWithElectricity(); } @Override public void display() { // 玩具电动车 } }
相关推荐
设计模式--策略模式java例子
设计模式---策略者模式---根据《Head First 设计模式》自己实现
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
设计模式-策略模式-c++版 压缩包中有build好的程序和工程设计到的所有类的源码,还有一个Uml类图
设计模式--策略模式StrategyPattern
JAVA-设计模式-行为型模式-策略模式
java设计模式--策略模式 HeadFirst书中的 装饰者模式
设计模式-策略模式源代码 .net,策略模式,模式,设计模式 文件包中有UML策略模式详解图
java常用设计模式-策略模式
北大青鸟关于设计模式的PPT,讲述的非常清晰,对于初学设计模式的人来说,非常有用。本篇是关于策略模式的PPT
深入浅出设计模式(C#版)--策略模式--示例代码
设计模式专题之(十六)策略模式---设计模式策略模式示例代码(python--c++)
设计模式-策略模式(Strategy)结合Android小知识讲解,简单明了
设计模式-策略模式(讲解及其实现代码)
NULL 博文链接:https://xieye.iteye.com/blog/1070202
http://blog.csdn.net/webwalker/article/details/5338873
设计模式--工厂模式java例子
第 1 章 策略模式【Strategy Pattern】 刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题, 嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看...
PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML 设计模式02 设计模式03-创建型模式 ...设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。