zoukankan      html  css  js  c++  java
  • 浅谈策略模式(Strategy Pattern)

          策略模式有点类似我刚刚写的提供者模式。但是在配置上是不同的。下面是一些基本的演示:

    模式定义
        定义:"准备一组算法,并将每一个算法封装起来,使得它们可以互换。"
    模式意图
        策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。使这些算法可以相互替换,并提供一种方法来选择最合适的算法

    根据上面UML,不难看出,在策略模式里主要有三
    种角色:环境角色、抽象策略角色和具体策略角色
    1、环境(Context)角色:持有一个抽象策略(Strategy)角色的引用。也叫上下文。
    2、抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或一个抽象类来实现。
    3、具体策略(ConcreteStrategy)角色:包装了相应的算法和行为。

    Strategy
    Context

    主函数 

    Main

    定义了一个抽象策略角色(Strategy),三种不同的日志记录策略(TXTStrategy、XMLStrategy和DBStrategy),也就是模式参与者中的具体策略角色,在环境角色里持有一抽象策略角色的引用,并通过构造器传入具体的策略对象初始化策略角色的引用,我们还定义了一动态设置策略的方法(SetStrategy),UML如下:

     

  • 相关阅读:
    Flex4中panel拖拽
    jquery两边飘浮的对联广告
    javascript 无刷新上传图片之原理
    第十二周--servlet做一个逻辑处理!!!!!!!!!!!!!实现登录
    第十一周--邮件系统补充一个注册一个登陆验证码
    第十周--邮件系统全套(第二版)
    第九周--邮件系统2(全套增删改查)
    第八周-邮件系统1
    第七周JSP增删改查
    JSP第六周 还是session
  • 原文地址:https://www.cnblogs.com/tomin/p/1366957.html
Copyright © 2011-2022 走看看