hand first设计模式 -状态模式

状态模式:允许对象在内部状态改变时改变它的的行为.对象看起来好像修改了化的类.

将以超市购物为例--说明状态模式

所有状态抽象类

Java代码

public abstract class BuyStat { 
 
     //在超市状态 
 public void inShop() { 
 System.out.println("welcome come our shop,please start shoping"); 
 } 
     //选购商品状态 
 public void select() { 
 System.out.println("you not in shop"); 
 } 
 
     //支付状态 
 public void pay() { 
 System.out.println("you don't have merchandise,so don't pay!"); 
 } 
 
     //商品打包 
 public void packing() { 
 System.out.println("you don't have merchandise,so don't packing!"); 
 } 
 
     //抽奖 
 public void winner(){ 
 System.out.println("you don't winner!"); 
 } 
 
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索system
, 状态
, public
, 模式
, void
println
head first 设计模式、headfirst设计模式pdf、first设计模式 中文版、headfirst设计模式 1、状态设计模式,以便于您获取更多的相关知识。

时间: 2025-01-20 09:08:39

hand first设计模式 -状态模式的相关文章

[Head First设计模式]生活中学设计模式——状态模式

系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式--建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式--工厂模式 [Head First设计模式]一个人的平安夜--单例模式 [Head First设计模式]抢票中的设计模式--代理模式 [Head First设计模式]面向对象的3特征5原则 [Head First设计模式]鸭子

PHP设计模式——状态模式

声明:本系列博客参考资料<大话设计模式>,作者程杰.         状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化.         UML类图:                  角色:                    上下文环境(Work):它定义了客户程序需要的接口并维护一个具体状态角色的实例,将与状态相关的

22、Python与设计模式--状态模式

一.电梯控制器 电梯在我们周边随处可见,电梯的控制逻辑中心是由电梯控制器实现的.电梯的控制逻辑,即使简单点设计,把状态分成开门状态,停止状态和运行状态,操作分成开门.关门.运行.停止,那流程也是很复杂的.首先,开门状态不能开门.运行.停止:停止状态不能关门,停止:运行状态不能开门.关门.运行.要用一个一个if-else-实现,首先代码混乱,不易维护:二是不易扩展.至于各种设计原则什么的--那该如何实现?在上边的逻辑中,每个操作仅仅是一个操作,状态切换与操作是分离的,这也造成后来操作和状态"相互配

Java设计模式--状态模式

状态模式(别名:状态对象) 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类. State Pattern(Another Name: Object for States) Allow an object to alert its behavior when its internal state changes. The object will appear to change its class. 类图 模式的结构与使用 状态模式的结构中包括三种角色. + 环境(Cont

设计模式之禅之设计模式-状态模式

一:状态模式定义        --->当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类        --->状态模式的核心是封装,状态的变更引起了行为的变更,从外部看起来就好像这个对象对应的类发生了改变一样        --->状态模式相对来说比较复杂,它提供了一种对物质运动的另一个观察视角,通过状态变更促使行为的变化,就类似水的状态变更一样,一碗水的初始状态是液态,通过加热转变为气态,状态的改变同时也引起体积的扩大,然后就产生了一个新的行为:鸣笛或顶起壶盖,瓦特

详解C++设计模式编程中对状态模式的运用_C 语言

状态模式:当一个对象的内在状态发生变化时,允许改变其行为,这个对象看来像是改变了其类. 状态模式与策略模式的UML图几乎一模一样,下面列举了两者的不同: (1)可以通过环境类状态的个数来决定是使用策略模式还是状态模式. (2)策略模式的环境类自己选择一个具体策略类,具体策略类无须关心环境类:而状态模式的环境类由于外在因素需要放进一个具体状态中,以便通过其方法实现状态的切换,因此环境类和状态类之间存在一种双向的关联关系. (3)使用策略模式时,客户端需要知道所选的具体策略是哪一个,而使用状态模式时

实例讲解C++设计模式编程中State状态模式的运用场景_C 语言

State模式允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类. 在面向对象系统的开发和设计过程,经常会遇到一种情况就是需求变更(Requirement Changing),经常我们做好的一个设计.实现了一个系统原型,咱们的客户又会有了新的需求.我们又因此不得不去修改已有的设计,最常见就是解决方案就是给已经设计.实现好的类添加新的方法去实现客户新的需求,这样就陷入了设计变更的梦魇:不停地打补丁,其带来的后果就是设计根本就不可能封闭.编译永远都是整个系统代码. 访问者模式则提

解析C++编程中如何使用设计模式中的状态模式结构_C 语言

作用:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. UML图如下: State类,抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为. ConcreteState类,具体状态,每一个子类实现一个与Context的一个状态相关的行为. Context类,维护一个ConcreteState子类的实例,这个实例定义当前的状态. 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把

学习php设计模式 php实现状态模式_php技巧

一.意图 允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类 状态模式变化的位置在于对象的状态 二.状态模式结构图   三.状态模式中主要角色抽象状态(State)角色:定义一个接口,用以封装环境对象的一个特定的状态所对应的行为 具体状态(ConcreteState)角色:每一个具体状态类都实现了环境(Context)的一个状态所对应的行为 环境(Context)角色:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例.这个具体状态类的实例给出此环境对象的现有状态四.状态