`
wjn811
  • 浏览: 7136 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

策略模式、命令模式

阅读更多

      从大3开始接触java,到现在也有近3年了(工作1年)。对java有所了解,对编程也有所了解。编程经验的一点点积累,让我对一些模式有些疑惑。

譬如今天要说的 策略模式(Strategy) 命令模式(Command)。
具体他们是什么,各位可以参考下面的网址

设计模式之Strategy(策略) http://www.jdon.com/designpatterns/designpattern_Strategy.htm

设计模式之Command http://www.jdon.com/designpatterns/command.htm


我的疑惑在于他们到底有什么不同呢?

策略模式和命令模式,他们都封装了算法,以实现一个固定的接口供其他应用调用。仔细想了想,加上google之后,略有眉目。

事实上在探讨设计模式的时候,我们需要场景来描述。

对策略模式,他封装的是算法。对应不同的问题有不同的解决方案。典型的是,Hibernate对事务的处理,是jdbc事务还是JTA事务? 用户只要在配置文件中指定就可以了。

命令模式的一个应用场景就是菜单响应。你按了一下菜单项,然后一个动作就被执行了。更常用的就是我们在使用xwork。我们定义了一系列action。 每个action都有自己的name,也有相应的class(当然还可以指明具体方法)。 其实class的实例的方法调用就是针对这个action的name的响应。

模式本来就很像的。你要硬说他们之间没有联系,那我也没办法。


我从最朴素的语言来描述就是,一个应用的命令是根据业务可以不停添加的,每个命令都有响应。但是对于一个问题(事务管理)的策略是有限的,而且相对来说更少变化。 一般类库封装好一些策略,用户可以根据自己的需求来选择替换。当然也可以自己来实现。不过一般来说没机会了。框架都帮你想好了。你还有更好的策略吗?

分享到:
评论

相关推荐

    记事本 使用了策略模式和命令模式

    在“记事本 使用了策略模式和命令模式”这个主题中,我们将深入探讨这两种设计模式以及它们如何应用于记事本软件的实现。 首先,让我们了解策略模式。策略模式是一种行为设计模式,它允许在运行时选择算法或策略。...

    设计模式试题

    命令模式和策略模式都是行为模式,主要解决对象的行为问题。命令模式提供了一种方式来封装请求,而策略模式提供了一种方式来封装算法。命令模式适合用于简单的请求封装,而策略模式适合用于复杂的算法封装。 策略...

    策略模式学习代码

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和一个行为根据...

    java常用数据结构及算法集锦

    策略模式 命令模式 调停者模式 备忘录模式 解释器模式 迭代器模式 状态模式 责任链模式 访问者模式 结构与算法 基础概念 稀疏数组与二维数组 队列和栈结构 单向链表和双向链表 排序与查找算法 二叉树与多叉树 应用...

    设计模式之命令模式(Command)

    还可以与策略模式结合,允许在运行时动态改变命令的行为。 总的来说,命令模式提供了一种灵活的方式去管理对象间的交互,使得系统更易于理解和维护,同时也提高了代码的可复用性和可扩展性。理解并掌握命令模式对于...

    浅谈简单工作流设计——责任链模式配合策略与命令模式的实现

    本文以项目中的一个工作流模块,演示责任链模式、策略模式、命令模式的组合实现!最近在做的一个项目,涉及到的是一个流程性质的需求。关于工程机械行业的服务流程:服务任务流程和备件发运流程。项目之初,需求不是...

    设计模式-策略模式(Strategy)

    在实际应用中,策略模式常常与工厂模式、命令模式等结合使用。例如,可以使用工厂模式来创建策略对象,或者使用命令模式来封装策略的调用。 下面是一个简单的策略模式示例: ```java // 策略接口 public interface ...

    设计模式系列之策略模式

    此外,策略模式也可以与其他行为模式(如职责链模式、命令模式)结合,以解决更复杂的问题。 总的来说,策略模式提供了一种灵活的方式来组织和选择算法,使得代码更加模块化,适应性强。它是一种强大的工具,可以在...

    java设计模式

    32.1 命令模式VS策略模式 32.1.1 策略模式实现压缩算法 32.1.2 命令模式实现压缩算法 32.1.3 小结 32.2 策略模式VS状态模式 32.2.1 策略模式实现人生 32.2.2 状态模式实现人生 32.2.3 小结 32.3 观察者模式VS责任链...

    设计模式,命令模式等各种模式

    本文将深入探讨标题中提到的“命令模式”以及其他几种设计模式。 首先,让我们来详细了解一下命令模式。命令模式是一种行为设计模式,它将请求封装为一个对象,从而允许支持可撤销的操作以及参数化不同对象。在命令...

    23种设计模式详解PDF

    设计模式 的分类 总体来说设计模式分为三大类: 创建型模式(5): ...策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    unity-23种常见设计模式unity版

    总体来说设计模式分为三大类: 创建型模式:共五种:...行为型模式:共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    设计模式-C++

    创建型模式,共五种:工厂方法模式、抽象工厂模式、...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    设计模式之命令模式

    命令模式是一种行为设计模式,它将请求封装为一个对象,使得可以使用不同的请求对客户进行参数化,同时支持可撤销...在实际开发中,命令模式经常与其他设计模式如工厂模式、策略模式等结合使用,以达到更优的设计效果。

    java 23种设计模式.zip

    设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

    中兴路由器命令模式

    中兴路由器的命令模式是其管理系统的核心组成部分,它允许管理员执行不同级别的操作,从简单的信息查询到复杂的网络配置。下面将详细介绍这些模式及其用途。 1. **用户模式**:这是登录路由器后首先进入的模式,...

    23种设计模式项目实例

    创建型模式,共五种:工厂方法模式、抽象工厂模式、...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等

    抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子模式、中介者模式、备忘录模式、...

    leetcode分类-DesignPatternAndAlgorithm:常用设计模式和算法,练习用

    行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式 1、本应用中已完成: 责任链模式 装饰模式 代理模式 单例模式 ...

    java常用23中设计模式

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。

Global site tag (gtag.js) - Google Analytics