研究State模式的人很多,网上有很多有价值的文章,尤其是那个遍历矩形的例子,相当好。看了很多,还是没太理解透彻,只好照葫芦画瓢了。
水的三种状态,冰(Ice) 液态水(LiquidWater)蒸汽(Steam)
加热(heatUp) 冷却(Cold)的时候改变状态。
package action.state2;
public interface Water {
public void handleHeat(Context c);
public void handleCold(Context c);
public void getUsage();
}
package action.state2;
public class Ice implements Water{
public void handleHeat(Context c) {
c.setWater(new LiquidWater());
}
public void handleCold(Context c) {
c.setWater(new Ice());
}
public void getUsage() {
System.out.println("We can skate now");
}
}
package action.state2;
public class LiquidWater implements Water{
public void handleHeat(Context c) {
c.setWater(new Steam());
}
public void handleCold(Context c) {
c.setWater(new Ice());
}
public void getUsage() {
System.out.println("It can be drink");
}
}
package action.state2;
public class Steam implements Water {
public void handleHeat(Context c) {
c.setWater(new Steam());
}
public void handleCold(Context c) {
c.setWater(new LiquidWater());
}
public void getUsage() {
System.out.println("It can warm bread now");
}
}
package action.state2;
public class Context {
private Water water = null;
public Water getWater() {
return water;
}
public void setWater(Water water) {
this.water = water;
}
public void HeatUp() {
water.handleHeat(this);
water.getUsage();
}
public void Cold() {
water.handleCold(this);
water.getUsage();
}
}
package action.state2;
public class Demo {
public static void main(String[] args) {
Water water=new Ice();
Context c=new Context();
c.setWater(water);
c.HeatUp();
c.HeatUp();
c.Cold();
c.Cold();
c.HeatUp();
}
}
相关推荐
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
Java 设计模式之 State 模式详解 State 模式是 Java 设计模式的一种,用于解决状态切换问题。当对象的状态改变时,对象的行为也随之改变。State 模式将状态和行为分离,实现了状态切换的灵活性和可扩展性。 定义:...
Java设计模式中的State模式是一种行为设计模式,它允许对象在其内部状态改变时改变它的行为。State模式的核心思想是将状态相关的代码封装到独立的对象中,这样可以使得对象在其状态改变时,表现出不同的行为,而无需...
State模式是一种行为设计模式,它的主要目的是将状态与行为封装在一起,使得对象在状态改变时,其行为也随之改变。在Java中,State模式通常通过创建一系列的子类来表示不同的状态,并让每个子类实现特定状态下的行为...
java 设计模式 java 设计模式是软件工程的基石,它们被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式可以让代码更容易被他人理解、保证代码可靠性、提高代码的重用性。 一、设计模式...
在Java设计模式中,状态模式的核心概念包括以下几个部分: 1. **状态(State)**:这是个接口或抽象类,定义了状态对象的公共行为。每个状态都对应一个特定的操作集,这些操作可能会影响对象的状态。 2. **具体...
### Java 23种设计模式详解 #### 一、设计模式概述 设计模式是一种编码实践,旨在通过标准化的解决方案来解决常见的软件设计问题。这些模式不仅有助于提高代码的可读性和可维护性,还能增强软件的灵活性和扩展性。...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可重用性、灵活性和可维护性。这23种设计模式是面向对象编程中广泛采用的经典模式,涵盖了创建型、结构型和行为型三大...
【JAVA设计模式】在软件开发中,设计模式是解决常见问题的经验总结,它们提供了一种在特定场景下高效、可扩展的解决方案。本篇将探讨两种重要的行为设计模式:责任链模式(Chain of Responsibility Pattern)和状态...
### JAVA23中设计模式详解 #### 一、概述 设计模式是在软件设计过程中解决常见问题的一套可复用的解决方案。《JAVA23中设计模式》是一份针对Java程序员的指南,旨在通过一系列示例和理论讲解,帮助读者理解和掌握...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。...在Java编程中,熟练掌握和应用设计模式,如状态模式,能够提升代码质量,使程序更加灵活、可扩展和易于维护。
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可重用性、可维护性和灵活性。本资源包含了23种经典的设计模式,每一种都有具体的Java实现源码,这为学习和理解设计...
Java作为一种广泛应用的面向对象编程语言,其灵活性和强大的功能使其成为实现设计模式的理想选择。本资源提供了23种设计模式的Java实现,通过具体的代码示例帮助开发者深入理解并掌握这些模式。 1. **单例模式...
### Java设计模式详解 #### 一、概述 Java设计模式是一种软件工程领域的概念,它提供了一套被广泛接受的、经过验证的解决方案,用于解决在软件设计过程中出现的常见问题。设计模式并不是完成任务的具体代码,而是...
Java设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,旨在提高代码的可重用性、可维护性和灵活性。本主题将深入探讨24种主要的设计模式,以及它们在Java中的另类解读。 首先,设计模式分为...
**Java设计模式——备忘录模式详解** 备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获并存储其内部状态,以便稍后恢复到该状态。这种模式常用于在游戏中保存进度、撤销/重做操作、以及在复杂...
享元模式是软件设计模式中的一种结构型模式,它的核心思想是通过共享已经存在的对象来减少内存中的对象数量,从而提高系统性能。在Java中,享元模式常用于处理大量相似对象的场景,例如在图形界面中绘制大量相似的...
根据给定文件的信息,我们可以深入探讨Java中的23种设计模式,这些模式是软件工程领域中广泛采用的解决方案,用于解决常见的设计问题。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 ### 创建型...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。在Java中,这种模式常用于处理对象在不同状态下的多种行为,使得代码更加灵活,易于维护和扩展。 状态模式的核心...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态变化,并且根据不同的状态,对象的行为也相应地变化。 在Java中实现状态模式,我们...