- 浏览: 428518 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
LiftState.java代码如下:
ClosingState.java代码如下:
OpenningState.java代码如下:
RunningState.java代码如下:
StoppingState.java代码如下:
Context.java代码如下:
Client.java代码如下:
运行结果如下:
package com.designPattern.state; public abstract class LiftState { protected Context context; public abstract void open(); public abstract void close(); public abstract void run(); public abstract void stop(); public Context getContext() { return context; } public void setContext(Context context) { this.context = context; } }
ClosingState.java代码如下:
package com.designPattern.state; public class ClosingState extends LiftState{ @Override public void open() { super.context.setLiftState(Context.openningState); super.context.getLiftState().open(); } @Override public void close() { System.out.println("电梯门关闭"); } @Override public void run() { super.context.setLiftState(Context.runningState); super.context.getLiftState().run(); } @Override public void stop() { super.context.setLiftState(Context.stoppingState); super.context.getLiftState().stop(); } }
OpenningState.java代码如下:
package com.designPattern.state; public class OpenningState extends LiftState{ @Override public void open() { System.out.println("电梯门打开了"); } @Override public void close() { super.context.setLiftState(Context.closingState); super.context.getLiftState().close(); } @Override public void run() { } @Override public void stop() { } }
RunningState.java代码如下:
package com.designPattern.state; public class RunningState extends LiftState{ @Override public void open() { } @Override public void close() { } @Override public void run() { System.out.println("电梯上下跑"); } @Override public void stop() { super.context.setLiftState(Context.stoppingState); super.context.getLiftState().stop(); } }
StoppingState.java代码如下:
package com.designPattern.state; public class StoppingState extends LiftState{ @Override public void open() { super.context.setLiftState(Context.openningState); super.context.getLiftState().open(); } @Override public void close() { } @Override public void run() { super.context.setLiftState(Context.runningState); super.context.getLiftState().run(); } @Override public void stop() { System.out.println("电梯停止了"); } }
Context.java代码如下:
package com.designPattern.state; public class Context { public static final OpenningState openningState = new OpenningState(); public static final ClosingState closingState = new ClosingState(); public static final RunningState runningState = new RunningState(); public static final StoppingState stoppingState = new StoppingState(); private LiftState liftState; public LiftState getLiftState() { return liftState; } public void setLiftState(LiftState liftState) { this.liftState = liftState; this.liftState.setContext(this); } public void open(){ this.liftState.open(); } public void close(){ this.liftState.close(); } public void run(){ this.liftState.run(); } public void stop(){ this.liftState.stop(); } }
Client.java代码如下:
package com.designPattern.state; public class Client { public static void main(String[] args) { Context context = new Context(); context.setLiftState(new ClosingState()); context.open(); context.close(); context.run(); context.stop(); } }
运行结果如下:
电梯门打开了 电梯门关闭 电梯上下跑 电梯停止了
发表评论
-
设计模式----中介者模式(demiator pattern)
2013-07-21 22:55 932AbstractMediator.java代码如下: pa ... -
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 638AdvTemplate.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 973IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1071这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----组合模式(composite)
2013-07-20 16:13 929该设计模式是以公司的组织结构为背景的 Crop.java代码 ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 917IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 1027SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 956Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1182Product.java代码如下: package com ... -
设计模式----模板方法模式(template method pattern)
2013-07-14 17:00 1147HummerModel.java代码如下: packag ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 865IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 946LetterProcess.java代码如下 ... -
设计模式----抽象工厂模式(abstract factory pattern)
2013-07-13 23:09 912Human.java代码如下: package com. ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1081给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1033Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 756单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 960代理模式主要使用了java ... -
设计模式----策略模式(strategy)
2013-06-29 22:17 1088本文参考别人设计模式的一个例子。 关于诸葛亮的三个锦囊妙计的 ... -
装饰着模式(decorator)
2012-09-09 21:51 1008一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 943设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
在《设计模式》实战---状态模式(State Pattern)这篇文章中,作者可能详细探讨了以下关键点: 1. **模式定义**:状态模式允许对象在内部状态改变时改变其行为,对象看起来好像修改了它的类。这通过将每个状态封装...
Java 架构设计模式 - 状态模式和模板模式 在软件设计中,了解设计模式非常重要,它可以帮助开发者编写更好的代码,使得系统更加灵活、可维护和可扩展。今天,我们将讨论两种常用的Java设计模式:状态模式和模板模式...
代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式...状态模式(State Pattern)、原型模式(Prototype Pattern)、中介者模式(Mediator Pattern)、解释器模式(Interpreter Pattern)、享元...
十一个行为型模式 状态模式-State Pattern 处理对象的多种状态及其相互转换——状态模式(一) 处理对象的多种状态及其相互转换——状态模式(二) 处理对象的多种状态及其相互转换——状态模式(三) 处理对象的...
### 状态模式(State Pattern) #### 概念与定义 状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,使对象看起来像是修改了它的类。该模式通过引入一个代表各种状态的类以及一个行为随着这些...
状态模式是一种行为设计模式,它使你能在运行时改变对象的行为。在状态模式中,一个对象的状态变化会导致其行为的变化,这种变化不是通过改变对象的类来实现的,而是通过改变对象的状态。这个模式的核心是封装可能...
状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,从而使对象看起来像改变了其类。这种模式的主要目的是将对象的状态作为独立的类来管理,从而简化了条件逻辑并提高了代码的...
"Design Pattern"这个压缩包文件很可能包含了一些关于设计模式的实例和文档,特别是提到了"design-pattern\doc\api"目录下的"index.html",这可能是一个交互式的文档或者教程,通过实例帮助开发者更好地理解设计模式...
包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...
这里我们关注的是一个名为"pattern.zip"的压缩包文件,它包含了23种经典的设计模式,这些模式在实践中被广泛使用,提高了代码的可读性、可维护性和可扩展性。这篇文章将详细探讨这些设计模式及其应用。 首先,23种...
本资料包“DesignPattern - DesignPattern.zip”提供了对C++11中23种设计模式的全面讲解,特别是结合指针使用的部分,以下是对这些知识点的详细阐述: 1. **单例模式(Singleton)**:确保一个类只有一个实例,并...
状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式将一个对象的行为分解为各个独立的状态,并且每个状态都封装在自己的类中,使得对象在...
### GOF设计模式详解 #### 一、设计模式概述 **设计模式**(Design Patterns)是软件工程中的一个重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。本章节将从多个角度对设计模式...
### 23种设计模式详解 #### 一、设计模式概览 设计模式是在软件工程领域内积累的经验和智慧的结晶。它源自于我们在面向对象编程(OOP)中遇到的各种常见问题及其解决方法。设计模式的目标是提高软件的可复用性、可...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态变化,并且根据不同的状态,对象的行为也相应地变化。在C++中实现状态模式,我们...
设计模式是软件工程中经过长期实践验证的有效解决方案模板,它们为常见的编程问题提供了...在压缩包中的"DesignPattern-master"文件夹中,你将找到每个设计模式的详细实现示例,这将是你学习和理解设计模式的宝贵资源。
在这个名为"JAVA design pattern-java设计模式"的CHM文件中,我们可能找到了关于如何在Java开发中应用设计模式的详细信息。 设计模式通常分为三大类:创建型、结构型和行为型。创建型模式关注对象的创建,如单例...
行为型模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、备忘录(Memento)、状态(State)、职责链(Chain of Responsibility...
在给定的“设计模式--观察者 c++版本”中,我们主要关注的是观察者模式(Observer Pattern)在C++语言中的实现。观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,...
在"design-pattern-master"中,你可以期待找到各种设计模式的具体实现,每个模式通常会有独立的包或类,通过阅读和运行这些示例,你可以更好地理解这些模式的工作原理,并学习如何在实际项目中应用它们。此外,可能...