状态模式,根据状态的不同,则行为不同
package com.fruitking.designparten.state;
public interface LoveState {
public static final String UNKOWN = "unkown";//不认识的
public static final String WOOING = "wooing";//追求中
public static final String MARRIAGED = "marriaged";//已结婚
public void run();//现在能做的事情
public void next();//下一步能达到什么状态
}
package com.fruitking.designparten.state;
public class UnkownState implements LoveState {
private Gentleman gentleman;
public UnkownState(Gentleman gentleman){
this.gentleman = gentleman;
}
public void next() {
gentleman.changeState(new WooingState(this.gentleman));
}
public void run() {
System.out.println("只能远远的看着她,其它事情啥都不能做...");
}
}
package com.fruitking.designparten.state;
public class WooingState implements LoveState {
private Gentleman gentleman;
public WooingState(Gentleman gentleman){
this.gentleman = gentleman;
}
public void next() {
gentleman.changeState(new MarriagedState(this.gentleman));
}
public void run() {
System.out.println("可以邀请她一起吃饭,看电影,散步...");
}
}
package com.fruitking.designparten.state;
public class MarriagedState implements LoveState {
private Gentleman gentleman;
public MarriagedState(Gentleman gentleman){
this.gentleman = gentleman;
}
public void next() {
System.out.println("结婚了就不能离婚啦,要永远在一起!");
System.out.println(gentleman.toString());
}
public void run() {
System.out.println("亲吻...");
}
}
package com.fruitking.designparten.state;
public class Gentleman {
private LoveState loveState;
public Gentleman(){
loveState = new UnkownState(this);
}
public void changeState(LoveState loveState){
this.loveState = loveState;
}
public void doSomething(){
this.loveState.run();
this.loveState.next();
}
}
package com.fruitking.designparten.state;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Gentleman gentleman = new Gentleman();
gentleman.doSomething();
gentleman.doSomething();
gentleman.doSomething();
}
}
分享到:
相关推荐
在IT领域,特别是软件开发行业中,设计模式是程序员必须掌握的核心知识之一。设计模式是一种在特定情境下解决常见问题的可重用解决方案,它能够帮助开发者编写出更灵活、更可维护的代码。《Java23种设计模式与追MM》...
这种分析可以帮助我们理解为什么某些行为模式在恋爱关系中常见,以及如何更理智地处理感情问题。 然而,值得注意的是,恋爱博弈论仅是一种理论模型,实际的恋爱关系远比模型复杂,涉及情感、文化、道德等多方面因素...
在“谈恋爱模型_增强学习_数学建模_”这个主题中,我们主要探讨的是如何运用数学建模的方法来模拟人类的恋爱过程,并结合增强学习的理论来加深对这一复杂社交现象的理解,以此激发学生对数学的兴趣。下面我们将详细...
在恋爱产生式系统中,这些规则可能是描述人们在恋爱关系中可能的行为模式、情感状态转换或者对话策略。例如,一个简单的产生式可能为:“如果用户表达了不开心,那么应该提供安慰。”系统会根据这些产生式动态生成...
2. **优化改进**:对于有经验的开发者,可以借鉴其中的设计模式,或者对现有功能进行优化和扩展。 3. **创新应用**:此源码可以作为基础,进行二次开发,例如加入AI算法,实现更智能的话术推荐。 在学习源码时,...
本文将详细探讨《大学生恋爱心理调查》的方案构建、问卷设计、调查结果的呈现、以及量化分析的过程,并揭示恋爱心理对于学业、生活以及未来发展的潜在影响。 首先,构建“大学生恋爱心理调查方案”是整个研究的基石...
2. **销售气氛**:在销售过程中,创造和维持合适的气氛至关重要。淡场时,销售人员需要通过互动和活动来营造氛围;中场时,要深入交流,确保顾客对产品有充分了解;旺场时,需保持冷静,控制节奏,避免顾客感到压力...
本文以《大一思修实践大学生恋爱观调查报告.docx》为依托,深入探讨大学生的生活状态,特别关注他们的消费行为和恋爱态度,以及这些现象背后的深层次原因和对IT行业可能产生的影响。 首先,大学生作为特殊的消费...
随着社交方式的多样化和价值观念的多元化,恋爱中的心理状态和行为模式也呈现出多种面貌。为了帮助大学生正确认识恋爱,理解爱情的复杂性,提升情感智慧,大学女生心理讲座学习教案被设计出来。这份教案不仅提供了...
7. **填充模式(Fill Mode)**: `animation-fill-mode`属性决定动画结束后元素应保持的状态。比如,可能希望爱心在动画结束时停留在最高点,而不是返回初始位置。 8. **动画播放次数(Iteration Count)**: `animation-...
首先,三层架构是一种常见的软件设计模式,它将应用程序分为三个逻辑层:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。在“招聘信息管理系统”中,表现层...
总的来说,大学生爱情团体心理辅导是一个有益的过程,它借助心理学理论为大学生提供了一个安全的环境,让他们能够深入探讨个人情感,提升人际交往能力,从而在未来的恋爱生活中做出更加成熟、理智的选择。
在这款H5飞行棋游戏中,源码设计可能包括以下几个主要部分: 1. 游戏界面:利用HTML和CSS构建用户界面,包括棋盘、棋子、按钮等元素的布局和样式,以及响应式设计以适应不同屏幕尺寸的设备。 2. 游戏逻辑:这是游戏...
【高职思想政治教育生活化取向教学设计...教师在这个过程中扮演着关键角色,他们需要不断创新教学方法,创设生动的教学情境,尊重并引导学生的个性化发展,使思想政治教育真正走进学生的生活,发挥其教育和引导的功能。
在本压缩包“【数据分析】问卷调研-脱单指南...在这个“脱单指南”数据中,我们可以全面了解单身人群的行为模式和心理状态,这对于个人的恋爱决策、婚恋服务行业的发展以及社会对单身问题的理解都有重要的参考价值。
TheIceBreak是由前YouTube高管Dwipal Desai和YouTube UI设计师Christina Brodbeck共同创立的一个创新约会网站,专门针对已经结婚或正在恋爱中的情侣和夫妻。在观察到Facebook上有大量的已婚或恋爱用户,但缺乏专门为...
消费心理学是理解消费者购买行为的关键领域,它探讨人在消费过程中的心理状态和行为模式。消费心理学不仅关注消费者的购买决策,还研究消费者的需求产生、选择过程以及受到的各种影响因素。这门学科的应用范围广泛,...
《2017设计美学调研用户分析报告》揭示了关于设计美学领域用户群体的多方面特征,主要包括性别比例、年龄分布、教育背景、情感状态、地域分布、休闲娱乐方式、上网设备偏好以及上网时长等多个维度的数据。...
认知发展理论中,顿悟说是由德国心理学家苛勒提出的,强调通过解决问题过程中突然的理解和领悟来促进学习。 【教学策略与学习策略】 教学策略是教师为达成教学目标而设计的一系列教学活动,包括课堂组织、教学方法...
【描述】: 文章通过一系列的故事和例子,揭示了女性在社会互动中的心理状态和行为模式,这有助于我们理解与女性交流的方式,以及如何建立良好的人际关系,这对于团队合作和管理来说至关重要,无论在哪个行业。...