using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace Sensis.UnitTest.ProductEntityCore
{
    public class Program
    {
        static void Main(string[] args)
        {
            WorkFlow workFlow = new WorkFlow();
            workFlow.State = State.Four;
            workFlow.ihandle = new One();
            workFlow.Invoke();
            Console.Read();
        }
    }

    public enum State
    {
        One, Two, Three, Four, Five
    }

    public interface IHandle
    {
        void Handle(State state);
    }

    public class WorkFlow
    {
        public WorkFlow()
        {
        }

        public WorkFlow(IHandle newHandle,State state)
        {
            this.ihandle = newHandle;
            this.State = state;
        }

        private State m_state;

        public State State
        {
            get { return m_state; }
            set { m_state = value; }
        }

        public IHandle ihandle;


        public void Invoke()
        {
            ihandle.Handle(this.State);
        }

    }


    public class One : IHandle
    {
        public void Handle(State state)
        {
            if (state == State.One)
            {
                Console.WriteLine("第一步");
            }
            else
            {
                new WorkFlow(new Two(),state).Invoke();
            }
        }

    }

    public class Two : IHandle
    {
        public void Handle(State state)
        {
            if (state == State.Two)
            {
                Console.WriteLine("第二步");
            }
            else
            {
                new WorkFlow(new Three(), state).Invoke();
            }
        }

    }


    public class Three : IHandle
    {
        public void Handle(State state)
        {
            if (state == State.Three)
            {
                Console.WriteLine("第三步");
            }
            else
            {
                new WorkFlow(new Four(), state).Invoke();
            }
        }

    }

    public class Four : IHandle
    {
        public void Handle(State state)
        {
            if (state == State.Four)
            {
                Console.WriteLine("第四步");
            }
            else
            {
                Console.WriteLine("Null");
            }
        }

    }

}

 


 

posted @ 2009-04-28 17:57 游侠_1 阅读(39) 评论(0) 编辑
Google链接广泛度检测器:直接在Google搜索栏中输入你要查询的网站的地址即可(注意: http://www 不能省)  

2、Google排名监测工具:( http://www.cleverstat.com/google-monitor.htm )

3、相似页面检测工器:( http://www.webconfs.com/similar-page-checker.php )

4、Google Dance工具:( http://www.seonet.net./seo-tools/google-dance-checker.htm )

5、查询关键字使用频率工具:( http://inventory.overture.com/d/searchinventory/suggestion )

7、查看你网站在google上的排名: http://www.cleverstat.com/google-monitor.htm

8、含蜘蛛模似器等: http://www.seotoolkit.co.uk

9、国内优化工具:http://www.iwbuy.com/

posted @ 2009-03-06 13:54 游侠_1 阅读(8) 评论(0) 编辑
摘要: 责任链模式很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在链上传递发出请求的客户并不知道这个链上的哪一个对象最终处理了这个请求,这使得系统可以在不影响客户端的情况下重新组织链上的责任分配。 阅读全文
posted @ 2008-11-11 16:56 游侠_1 阅读(39) 评论(1) 编辑
摘要: 目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 问题提出System.Collection命名空间下提供了大量集合操作对象。但大多数情况下处理的都是同类对象的聚集。换言之,在聚集上采取的操作都是一些针对同类型对象的同类操作。但是如果针对一个保存有不同类型对象的聚集采取某种操作该怎么办呢? 粗看上去,这似乎不是什么难题。可是如果需要针对一个包含不同类型元素的聚集采取某种操作,而操作的细节根据元素的类型不同而有所不同时,就会出现必须对元素类型做类型判断的条件转移语句。这个时候,使用访问者模式就是一个值得考虑的解决方案。 阅读全文
posted @ 2008-11-10 17:34 游侠_1 阅读(14) 评论(0) 编辑
摘要: 状态模式把研究对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的子类。 状态模式的意图是让一个对象在其内部状态发生变化的时候其行为也随之改变阅读全文
posted @ 2008-11-07 14:49 游侠_1 阅读(26) 评论(0) 编辑
摘要: 搞了四个小时终于搞定了阅读全文
posted @ 2008-11-06 17:52 游侠_1 阅读(47) 评论(0) 编辑
摘要: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 阅读全文
posted @ 2008-11-05 15:49 游侠_1 阅读(16) 评论(0) 编辑
摘要: 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。阅读全文
posted @ 2008-11-04 16:18 游侠_1 阅读(18) 评论(0) 编辑
摘要: using System;using System.Web;public partial class DesignPattern_AbstractFactory : System.Web.UI.Page{ //三大工厂 //抽象工厂模式堪称gof23种设计模式精典模式之一,它能够解决诸如:通过显示指定类创建对象,紧耦合,对对象表示或实现的依 //赖等等一些问题,有关设计模式的设计原则,所能解决的问...阅读全文
posted @ 2008-10-29 17:15 游侠_1 阅读(33) 评论(0) 编辑
摘要: 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式阅读全文
posted @ 2008-10-24 16:46 游侠_1 阅读(22) 评论(0) 编辑