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

策略模式与状态模式区别

阅读更多

这两个模式UML相同,其实他们的运用场景有很大区别。

 

1、策略模式

 

     封装算法,让使用者可以更换不同的算法。变is a为has a 用组合来代替继承。

     一旦置入算法,不会因使用者的内部状态来改变算法。

     采用哪种算法,是由使用者掌握的。

 

2、状态模式

 

     对象的内部状态决定它的行为。不同的状态有不同的行为,不同的行为又切换不同的状态。

     当方法内出现很多if else时可以考虑使用状态模式。

     状态模式重要的一点是在行为执行时,状态的变更。

       

分享到:
评论

相关推荐

    55-Java设计模式之策略模式与状态模式1

    Java 设计模式之策略模式与状态模式 策略模式是 Java 中的一种设计模式,它主要用于解决系统与第三方接口进行数据交互的问题。当系统需要与多种格式的数据进行交互时,使用策略模式可以很好地解决这个问题。例如,...

    23种设计模式之:建造者,代理,观察,策略,状态模式

    本文将重点介绍标题中提到的五种设计模式:建造者模式、代理模式、观察者模式、策略模式以及状态模式。 **1. 建造者模式(Builder)** 建造者模式是一种创建型设计模式,它允许我们分步骤构建复杂对象,而无需暴露...

    观察者模式和策略模式举例

    观察者模式和策略模式是软件设计模式中的两种重要概念,它们在解决特定问题时能提供高效、灵活的解决方案。设计模式是一种在特定情况下解决问题的通用、可重用的解决方案,是经验丰富的软件开发者们智慧的结晶。 ...

    Java开发之策略模式责任链模式状态模式观察者模式合并扣减库存demo.zip

    Java开发之策略模式责任链模式状态模式观察者模式合并扣减库存demo Java开发之策略模式责任链模式状态模式观察者模式合并扣减库存demo Java开发之策略模式责任链模式状态模式观察者模式合并扣减库存demo

    策略模式工厂方法模式观察者模式

    1. **策略模式**的学习文档,可能会通过具体的案例,如不同排序算法的实现来解释如何使用策略模式,例如快速排序、冒泡排序等。每个算法都可以作为一个策略类,而策略接口规定了算法的公共行为。 2. **工厂方法模式...

    设计模式-状态模式分享ppt

    #### 七、状态模式与策略模式的区别 虽然状态模式和策略模式在结构上有一定的相似性,但它们的目的和应用场景有所不同: - **状态模式**:关注的是对象内部状态的变化,状态的改变会导致行为的变化,且状态之间的...

    PHP设计模式实例之(观察者模式、策略模式、简单工厂模式)借鉴.pdf

    PHP 设计模式实例之观察者模式、策略模式、简单工厂模式 PHP 设计模式实例之观察者模式、...观察者模式用于在对象之间定义一对多的依赖关系,策略模式用于定义一系列的算法,简单工厂模式用于提供一个创建对象的接口。

    C++设计模式课件4_策略模式.pdf

    ### C++设计模式课件4_策略模式.pdf #### 知识点概览 - **设计模式概述** - **策略模式动机分析** - **模式定义与结构解析** - **策略模式应用实例** - **策略模式优缺点分析** #### 设计模式概述 设计模式是一种...

    设计模式之单件模式、工厂模式、策略模式、观察者模式(php描述)(资料整理)

    接下来是策略模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。在PHP中,我们可以使用接口或抽象类定义策略行为,然后创建多个实现了该接口的具体...

    策略模式在android中使用

    在Android中,策略模式常常用于处理复杂的业务逻辑或者多种状态的切换。例如,在一个应用中,可能有多种不同的排序方式,如按时间、按评分等,每种排序方式都可以看作是一个策略。我们可以定义一个`SortStrategy`...

    对比Java设计模式编程中的状态模式和策略模式

    状态模式和策略模式都是设计模式中的重要成员,它们在Java编程中被广泛使用,以解决特定的软件设计问题。这两种模式都属于行为模式,因为它们关注的是对象如何响应某些行为。 首先,状态模式的主要思想是封装对象...

    headfirst 策略模式代码

    《深入理解Headfirst策略模式——基于Java代码实例》 策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Headfirst的讲解中,这个模式被巧妙地通过鸭子的例子来阐述,使得复杂的概念变得生动易懂。在...

    设计模式 策略模式

    例如,在游戏中,角色的行为可能因玩家的选择或游戏状态而变化,通过策略模式,可以轻松地切换角色的攻击策略或防御策略。 在学习策略模式时,除了理解其基本概念,还需要掌握如何在实际项目中应用和扩展。这包括...

    23种设计模式详细介绍与区别

    在本文中,我们将深入探讨标题提及的23种设计模式,并着重讨论桥接模式与适配器模式、装饰模式与代理模式、状态模式与策略模式,以及工厂模式之间的差异。 1. **桥接模式与适配器模式**: - **桥接模式**:将抽象...

    设计模式——策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或策略来执行不同操作的情况。策略模式允许我们将算法封装到独立的可互换的策略对象中,从而使算法的...

    设计模式1,策略模式

    在"设计模式1,策略模式"的案例中,门的状态被用来作为策略模式的应用实例。门有两个基本状态:开和关,这两种状态可以被视为两种不同的策略。我们可以创建两个类,分别代表"开门"和"关门"的策略,它们都实现一个...

    策略模式+观察这模式

    策略模式和观察者模式是软件设计模式中的两种重要模式,它们在解决特定问题时具有很高的灵活性和可扩展性。下面将分别对这两种模式进行详细解释,并结合实例来说明其应用场景和使用方法。 策略模式是一种行为设计...

    android应用开发设计模式之-策略模式

    今天我们将深入探讨其中的一种——策略模式。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java编程语言中,尤其是在Android平台上,这种模式能够使我们的代码更加灵活、可扩展且易于维护。 ...

    策略(strategy)模式

    2. **封装变化**:策略模式封装了变化的算法,使得客户端代码无需关心具体算法的实现,只与策略接口交互,降低了系统的耦合度。 3. **多态性**:所有策略类都实现了同一个接口,因此可以在运行时以多态方式选择并...

Global site tag (gtag.js) - Google Analytics