`

State与Strategy

阅读更多

 

State模式定义:允许对象在内部状态改变时改变自己的行为,就像改变了对象的类。

Strategy模式定义:定义了算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的的变化独立于使用算法的客户。

 

这2个模式可以说从命名上就能看出其专注的问题点!

 

状态模式专注于对象的状态,对状态进行了行为上的封装,因此,不同的状态,所执行的操作时完全不同的,当有新的状态出现时,我们不得不增加类来满足业务的需要,而状态的改变对操作者是透明的,操作者不需要关注当前状态会执行什么,因为状态告诉操作者:我是足够聪明的,相信我!

 

策略模式不会去关注对象的状态,而主要考虑我需要什么样的操作,这些操作有哪些的共通的,那么我就把这些共通的行为进行对象化,产生行为类,自己去管理这些行为类,需要做什么样的事情,就持有该行为类,执行该类的共通方法。

 

状态模式由状态类管理状态的改变,而策略模式由用户来决定使用什么策略!

 

个人浅显的观点,不足的地方,请大家多指教,一起讨论

分享到:
评论

相关推荐

    A Pseudospectral Strategy for LCM of Automated Vehicles on Highway

    This paper presents a pseudospectral strategy for lane change maneuvers of automated vehicles on the highway. This strategy can optimize the longitudinal and lateral control simultaneously to account ...

    IT strategy

    HIT strategy About North Caroline State in US

    Power Management Strategy for a Parallel Hybrid Electric Truck

    然后使用动态规划(Dynamic Programming,简称DP)来找出包括变速序列和发动机与电动机之间的动力分配在内的最优控制动作,同时满足保持电池荷电状态(State Of Charge,简称SOC)的约束。通过分析DP控制动作的行为...

    两页纸的设计模式概要

    这些类可以在运行时互换,从而使算法与使用它们的客户之间解耦。 关键组成部分: - **上下文 (Context)**:维护一个对策略对象的引用,并定义一个接口来委托给策略对象。 - **策略 (Strategy)**:定义算法的接口。 ...

    Programming.in.the.Large.with.Design.Patterns

    Singleton, Iterator, Adapter, Decorator, State, Strategy, Factory Method, Observer, Facade and Template Method. Each pattern is introduced with a non-technical example or story that illustrates the ...

    A Decentralized Control Strategy for Autonomous.pdf

    本文提出的去中心化控制策略,旨在实现混合储能系统的瞬态功率分配和电池荷电状态(State of Charge,简称SoC)的自恢复。 首先,文章涉及了混合储能系统的基本概念和去中心化控制策略。去中心化控制是一种允许多个...

    设计模式C++代码示例-含VC工程

    Strategy Encapsulates an algorithm inside a class Template Method Defer the exact steps of an algorithm to a subclass Visitor Defines a new operation to a class without change

    Near-Optimal Resilient Control Strategy Design for State-Saturated Networked Systems Under Stochastic Communication Protocol

    状态饱和 (State Saturation) 状态饱和是指系统状态变量达到或超过预定的上限或下限的情况。当系统受到外界干扰或其他因素影响时,可能会导致某些状态变量超出正常工作范围,进而引发饱和现象。状态饱和可能会导致...

    Head First Of Design高清中文版 1/3

    如:Template Method、Command、Iterator、Observer、State、Strategy、Mediator、Visitor、Interpreter、Memento、Chain of Responsibility。 结构型模式可以让你把类或对象组合到更大的结构中。如:Decorator、...

    Head First Of Design高清中文版 2/3

    如:Template Method、Command、Iterator、Observer、State、Strategy、Mediator、Visitor、Interpreter、Memento、Chain of Responsibility。 结构型模式可以让你把类或对象组合到更大的结构中。如:Decorator、...

    Head First Of Design中文高清版 3/3

    如:Template Method、Command、Iterator、Observer、State、Strategy、Mediator、Visitor、Interpreter、Memento、Chain of Responsibility。 结构型模式可以让你把类或对象组合到更大的结构中。如:Decorator、...

    IT_DR_Plan fro ARIZONA STATE University

    #### 标题:IT_DR_Plan for ARIZONA STATE University 该标题明确了文档的主题是针对亚利桑那州立大学的信息技术灾难恢复计划。这表明了该文档对于亚利桑那州立大学信息技术部门的重要性,旨在为学校的信息技术系统...

    [开发平台] 平台生态系统 (英文版)

    You will also learn to apply state-of-the-art research in software engineering, strategy, and evolutionary biology to leverage ecosystem dynamics unique to platforms. ☆ 出版信息:☆ [作者信息] ...

    api-strategy:Equinor API策略

    REST(Representational State Transfer)是API设计的一个最常用的标准,它基于HTTP协议,通过统一的资源标识符(URI)来访问和操作资源。RESTful API遵循REST原则,提供简洁、灵活且可扩展的接口。RESTAPI这一标签...

    simple-immuter:Simple Immuter库的开发

    :rocket: 上 创建人:Immer ... 这意味着您可以通过修改数据来与数据进行交互,从而使数据的所有优点保持不变,即nextState是currentState的深层且不变的副本。 使用例 结果 BaseState不会更改,

    A strategy for the assessment of bilingual handicapped children

    State University of New York at Albany Because of current federal legislation, educators must assess children with possible handicapping conditions and plan an individual education program for each...

    strategy-game-htn

    def build_town ( state ): print state return [( 'build_barracks_task' ,),( 'build_watchtower_task' ,)] 领域 有两种类型的资源: 金子 木头 有3种类型的建筑: 军营 岗楼 屋 有工人(苦工),他们需要...

Global site tag (gtag.js) - Google Analytics