状态模式(Strategy Pattern)

简介:
Strategy策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.
 
Stratrgy应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy实现.


2006100501.jpg

 
public abstract class Rule
    {
        public abstract void replace();

    }

    public class RuleOne : Rule
    {
        public RuleOne()
        {
        }
        public override void replace()
        {
            System.Console.WriteLine("replace1");
        }

    }

    public class RuleTwo : Rule
    {
        public RuleTwo()
        {
        }

        public override void replace()
        {
            Console.WriteLine("replace2");
        }

    }

    public class RuleSolve 
    {
        private Rule strategy;

        public RuleSolve(Rule rule)
        {
            this.strategy = rule;
        }

        public void getContext()
        {
            this.strategy.replace();
        }
    }
    class SrategyTest
    {
        [STAThread]
        static void Main(string[] args)
        {
            
            RuleSolve solver = new RuleSolve(new RuleOne());
            solver.getContext();

            solver = new RuleSolve(new RuleTwo());
            solver.getContext();
        }
    }

整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速.
 
Strategy和Factory有一定的类似,Strategy相对简单容易理解,并且可以在运行时刻自由切换。Factory重点是用来创建对象。
 
Strategy适合下列场合:
 
1.以不同的格式保存文件;
2.以不同的算法压缩文件;
3.以不同的算法截获图象;
4.以不同的格式输出同样数据的图形,比如曲线 或框图bar等




本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/10/05/521873.html,如需转载请自行联系原作者
目录
相关文章
|
设计模式 算法 关系型数据库
设计模式1 - 策略模式【Strategy Pattern】
设计模式1 - 策略模式【Strategy Pattern】
45 0
|
6月前
|
设计模式 监控 uml
深入理解观察者模式(Observer Pattern)
深入理解观察者模式(Observer Pattern)
70 0
|
设计模式 Java uml
观察者模式(Observer Pattern)
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了对象间的一种一对多的依赖关系,使得一个对象的状态发生改变时,所有依赖于它的对象都能够得到通知并自动更新。
84 1
|
算法 Java
行为型模式 - 策略模式(Strategy Pattern)
行为型模式 - 策略模式(Strategy Pattern)
|
存储 算法 Java
行为型模式 - 模板模式(Template Pattern)
行为型模式 - 模板模式(Template Pattern)
|
设计模式 算法 Java
Java设计模式教程-策略模式(Strategy Pattern)(上)
Java设计模式教程-策略模式(Strategy Pattern)(上)
129 0
Java设计模式教程-策略模式(Strategy Pattern)(上)
|
设计模式 Java Spring
Java设计模式教程-策略模式(Strategy Pattern)(下)
Java设计模式教程-策略模式(Strategy Pattern)(下)
143 0
Java设计模式教程-策略模式(Strategy Pattern)(下)
|
设计模式 安全 Java
设计模式|从Visitor Pattern说到Pattern Matching
在软件开发领域,我们每次遇到的问题可能都各不相同,有些是跟电商业务相关的,有些是跟底层数据结构相关的,而有些则可能重点在性能优化上。然而不管怎么样,我们在代码层面上解决问题的方法都有一定的共性。有没有人总结过这些共性呢?
设计模式|从Visitor Pattern说到Pattern Matching