四川省建设厅的注册中心网站,编程培训班学费是多少,网站建设需求调查,网站界面设计和ios移动界面设计的区别本文将介绍状态设计模式 。 它是行为设计模式之一 。 您无需了解许多理论即可了解模式的主要概念。 该文章将分为几个部分#xff0c;在其中我将提供有关需要应用该模式的情况#xff0c;它所具有的利弊以及用法示例的信息。 有时#xff0c;当对象的内部状态更改时#… 本文将介绍状态设计模式 。 它是行为设计模式之一 。 您无需了解许多理论即可了解模式的主要概念。 该文章将分为几个部分在其中我将提供有关需要应用该模式的情况它所具有的利弊以及用法示例的信息。 有时当对象的内部状态更改时您需要更改其行为。 State设计模式允许执行此操作。 您可以通过创建代表不同状态和功能的单独类来获得此功能。 当然这些类必须从一个抽象类继承或实现一个接口。 当我们需要在运行时通过输入某些State基类的不同子类来更改对象的状态时可以使用State设计模式。 这种情况同时是有利和不利的因为我们有明确的独立的州类别并具有一定的逻辑而另一方面类别的数量却在增加。 让我们考虑这个例子。 每年有四个季节冬季Spring夏季和秋季。每个季节都有其自己的顺序例如Spring在冬季之后夏季在Spring之后等等。 季节的基本状态界面 public interface Season {public void theSeason(SeasonContext context);
} 实现Season接口的状态类 public class Winter implements Season {Overridepublic void theSeason(SeasonContext context) {System.out.println(Winter is now.);context.setSeason(new Spring());}} Spring班 public class Spring implements Season {Overridepublic void theSeason(SeasonContext context) {System.out.println(Spring is now);context.setSeason(new Summer());}} 我将省略夏季和秋季的课程因为它们与以前的课程相同。 SeasonContext类 public class SeasonContext {private Season season;public SeasonContext() {this.season new Winter();}public void setSeason(Season season) {this.season season;}public void whatTheSaeson() {season.theSeason(this);}
} 所有这些内容都显示了状态模式的体系结构基本状态接口实现状态接口和状态上下文的类。 现在让我们看看它是如何工作的 ...public static void main(String[] args) {SeasonContext sc new SeasonContext();sc.whatTheSaeson();sc.whatTheSaeson();sc.whatTheSaeson();sc.whatTheSaeson();}
... 结果将是 Winter is now.
Spting is now
Summer is now.
Autumn is now. 参考 设计模式在Fruzenshtein的注释博客中来自我们JCG合作伙伴 Alexey Zvolinskiy的陈述 。 翻译自: https://www.javacodegeeks.com/2013/07/design-patterns-state.html