欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式之策略模式 博客分类: 设计模式 策略模式strategy 

程序员文章站 2024-03-24 08:11:34
...

   策略模式(strategy)属于对象的行为模式,将一组算法封装在一个具有共同接口的独立类中,这组算法

   可以在不影响客户端的情况下互换。类图如下:

 

设计模式之策略模式
            
    
    博客分类: 设计模式 策略模式strategy 

Context:

 

package com.cmj.pattern.strategy;

public class Context
{
    private Strategy strategy;
    
    
    public void contextInterface()
    {
        strategy.algorithm();
    }
}

 

 

strategy:

 

package com.cmj.pattern.strategy;

abstract public class Strategy
{
    public abstract void algorithm ();
}

 

 StrategyImpl1

 

package com.cmj.pattern.strategy;

public class StrategyImpl1 extends Strategy
{
    public void algorithm ()
    {
    	//write you algorithm code here
    }
}

 

 

  从类图中我们可以看到,通过一个算法接口封装算法,把使用算法的环境和具体的算法分隔开来,算法的变化,不会影响环境。

 

设计思想的体现:  

 策略模式是“开闭原则”很好的体现,对扩展开发也就是对增加新的算法开放,对修改关闭也就是不会影响环境,不会影响其它 的算法;其实这些根本上是通过多态来实现的。

   同时也是“里氏代换原则”很好的体现,一个程序如果使用的是一个基类的话,那么也一定适用于其子类,而此程序根本没有觉察到子类和父类的区别。
   

  • 设计模式之策略模式
            
    
    博客分类: 设计模式 策略模式strategy 
  • 大小: 20.4 KB