城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

模式(一):策略(Strategy)模式

Posted on 2008-07-19 14:53 sailor 阅读(132) 评论(0)  编辑  收藏 所属分类: 模式
    定义:定义了算法族,分别封装起来,让他们之间可以相互交换,此模拟算法的变化独立于使用算法的客户。
    
    设计原则:
        1、多用组合,少用继承;
        2、针对接口编程,而不是针对实现编程;

     实现:


        Context(应用场景):

l         需要使用ConcreteStrategy提供的算法。

l         内部维护一个Strategy的实例。

l         负责动态设置运行时Strategy具体的实现算法。

l         负责跟Strategy之间的交互和数据传递。


        Strategy(抽象策略类):

l         定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,Context使用这个接口调用不同的算法,一般使用接口或抽象类实现。

        
        ConcreteStrategy(具体策略类):

l         实现了Strategy定义的接口,提供具体的算法实现。




    参考资料:《Head First设计模式》
                        鸭子-策略模式(Strategy

只有注册用户登录后才能发表评论。


网站导航: