今天学习了设计模式中的策略模式,策略模式有三部分,一个抽象的类,或者是接口;一个具体的实现功能的类;
还有一个环境类。大体是这么理解的,在第一部分中定义一个方法,当然没有实现的,在第二部分实现这个方法,通常第二部分有许多个平行的类,这是为了对第一部分定义的方法有不同实现;实现的总的效果就是你调用一个方法进行某一操作的时候,是调用第一部分的方法去操作的,所以具体实现的功能你说不确定的,因为你不知道具体是谁实现了第一部分的方法;这样一来同一个方法,随着你传递的实例(即第二部分类的一个对象)不同,它实现的操作也将不同。
这么讲大家也许会觉得有点蒙,现在用代码说明一下:
public interface StrategyTest
{
public int calculate(int a,int b);
}
public class AddTest implements StrategyTest
{
public int calculate(int a, int b)
{
return a + b;
}
}
public class SubTest implements StrategyTest
{
public int calculate(int a, int b)
{
return a - b;
}
}
public class Test
{
public static void main(String []args)
{
//
StrategyTest strategy = new AddTest();
StrategyTest strategy = new AddTest();
System.out.println(strategy.calculate(4,5));
//当你执行System.out.println(strategy.calculate(4,5))的时候,你并不知道是具体的
//执行的加法还是减法,而起决定因素的是前面你传给接口的实例不同而改变的
//输出行的代码不变的情况下,你用第一行就会是加法,第二行就会使减法
}
}
在我这里没用到开篇提到的第三部分,环境类,其实我觉得我这么理解会更简单,那个环境类就是起一个辅助作用罢了,策略模式的思路就是这样的,要是想实现更复杂的应用还得再进一步熟悉掌握才行。。。。
分享到:
相关推荐
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。...
【Java设计模式】(2)策略模式Strategy
java 策略模式
javase 设计模式的strategy pattern《JAVA与模式》之策略模式详解
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
NULL 博文链接:https://bossshit.iteye.com/blog/715672
java实现策略模式、工厂模式、桥接模式
1、策略模式STRATEGY PATTERN 2、代理模式PROXY PATTERN 3、单例模式SINGLETON PATTERN 4、多例模式MULTITION PATTERN 5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式...
设计模式-策略模式(Strategy)结合Android小知识讲解,简单明了
C#面向对象设计模式 (行为型模式) Strategy 策略模式 视频讲座下载
策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4 J2EE 模式 这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 MVC 模式(MVC Pattern) 业务代表...
6. 策略模式 (Strategy Pattern) 7. 适配器模式 (Adapter Pattern) 8. 模板方法模式 (Template Pattern) 9. 建造者模式 (Builder Pattern) 10. 原型模式 (Prototype Pattern) 11. 组合模式 (Composite ...
策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate Pattern) 数据访问对象模式(Dao ...
走进设计模式之 策略模式(Strategy) 代码
设计模式C++学习之策略模式(Strategy)
在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
这种设计模式比较常用,希望能够帮助到大家。
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.)
主要介绍了Java设计模式之策略模式(Strategy模式)介绍,Strategy是属于设计模式中对象行为型模式,要是定义一系列的算法,这些算法一个个封装成单独的类,需要的朋友可以参考下