`

恋爱过程中的设计模式之状态模式

阅读更多
状态模式,根据状态的不同,则行为不同
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();
	}
}
分享到:
评论

相关推荐

    java23种设计模式与追MM下载地址

    在IT领域,特别是软件开发行业中,设计模式是程序员必须掌握的核心知识之一。设计模式是一种在特定情境下解决常见问题的可重用解决方案,它能够帮助开发者编写出更灵活、更可维护的代码。《Java23种设计模式与追MM》...

    恋爱博弈论demo

    这种分析可以帮助我们理解为什么某些行为模式在恋爱关系中常见,以及如何更理智地处理感情问题。 然而,值得注意的是,恋爱博弈论仅是一种理论模型,实际的恋爱关系远比模型复杂,涉及情感、文化、道德等多方面因素...

    谈恋爱模型_增强学习_数学建模_

    在“谈恋爱模型_增强学习_数学建模_”这个主题中,我们主要探讨的是如何运用数学建模的方法来模拟人类的恋爱过程,并结合增强学习的理论来加深对这一复杂社交现象的理解,以此激发学生对数学的兴趣。下面我们将详细...

    恋爱产生式系统

    在恋爱产生式系统中,这些规则可能是描述人们在恋爱关系中可能的行为模式、情感状态转换或者对话策略。例如,一个简单的产生式可能为:“如果用户表达了不开心,那么应该提供安慰。”系统会根据这些产生式动态生成...

    撩妹攻略话术恋爱小程序源码分享

    2. **优化改进**:对于有经验的开发者,可以借鉴其中的设计模式,或者对现有功能进行优化和扩展。 3. **创新应用**:此源码可以作为基础,进行二次开发,例如加入AI算法,实现更智能的话术推荐。 在学习源码时,...

    恋爱式销售关键点及销售用语集.doc

    2. **销售气氛**:在销售过程中,创造和维持合适的气氛至关重要。淡场时,销售人员需要通过互动和活动来营造氛围;中场时,要深入交流,确保顾客对产品有充分了解;旺场时,需保持冷静,控制节奏,避免顾客感到压力...

    纯CSS3实现的情人节恋爱表情动画特效源码.zip

    7. **填充模式(Fill Mode)**: `animation-fill-mode`属性决定动画结束后元素应保持的状态。比如,可能希望爱心在动画结束时停留在最高点,而不是返回初始位置。 8. **动画播放次数(Iteration Count)**: `animation-...

    c#,三层架构,抽象工厂,序列化于反序列化程序

    首先,三层架构是一种常见的软件设计模式,它将应用程序分为三个逻辑层:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。在“招聘信息管理系统”中,表现层...

    大学生爱情团体的心理辅导.doc

    总的来说,大学生爱情团体心理辅导是一个有益的过程,它借助心理学理论为大学生提供了一个安全的环境,让他们能够深入探讨个人情感,提升人际交往能力,从而在未来的恋爱生活中做出更加成熟、理智的选择。

    H5手机游戏飞行棋源码(4人版)

    在这款H5飞行棋游戏中,源码设计可能包括以下几个主要部分: 1. 游戏界面:利用HTML和CSS构建用户界面,包括棋盘、棋子、按钮等元素的布局和样式,以及响应式设计以适应不同屏幕尺寸的设备。 2. 游戏逻辑:这是游戏...

    高职思想政治教育生活化取向教学设计探索.docx

    【高职思想政治教育生活化取向教学设计...教师在这个过程中扮演着关键角色,他们需要不断创新教学方法,创设生动的教学情境,尊重并引导学生的个性化发展,使思想政治教育真正走进学生的生活,发挥其教育和引导的功能。

    【数据分析】问卷调研-脱单指南数据.rar

    在本压缩包“【数据分析】问卷调研-脱单指南...在这个“脱单指南”数据中,我们可以全面了解单身人群的行为模式和心理状态,这对于个人的恋爱决策、婚恋服务行业的发展以及社会对单身问题的理解都有重要的参考价值。

    前 Youtube 高管为情侣和夫妻创办约会网站 TheIceBreak.docx

    TheIceBreak是由前YouTube高管Dwipal Desai和YouTube UI设计师Christina Brodbeck共同创立的一个创新约会网站,专门针对已经结婚或正在恋爱中的情侣和夫妻。在观察到Facebook上有大量的已婚或恋爱用户,但缺乏专门为...

    消费心理学典型案例.doc

    消费心理学是理解消费者购买行为的关键领域,它探讨人在消费过程中的心理状态和行为模式。消费心理学不仅关注消费者的购买决策,还研究消费者的需求产生、选择过程以及受到的各种影响因素。这门学科的应用范围广泛,...

    2017设计美学调研用户分析报告1

    《2017设计美学调研用户分析报告》揭示了关于设计美学领域用户群体的多方面特征,主要包括性别比例、年龄分布、教育背景、情感状态、地域分布、休闲娱乐方式、上网设备偏好以及上网时长等多个维度的数据。...

    精品资料(2021-2022年收藏)教师资格考试《中学教育心理学》试题及答案三.doc

    认知发展理论中,顿悟说是由德国心理学家苛勒提出的,强调通过解决问题过程中突然的理解和领悟来促进学习。 【教学策略与学习策略】 教学策略是教师为达成教学目标而设计的一系列教学活动,包括课堂组织、教学方法...

    初中语文文摘人生做一个可爱的女人

    【描述】: 文章通过一系列的故事和例子,揭示了女性在社会互动中的心理状态和行为模式,这有助于我们理解与女性交流的方式,以及如何建立良好的人际关系,这对于团队合作和管理来说至关重要,无论在哪个行业。...

    高中信息技术人工智能教学培训课件选修5.pptx

    通过学习PROLOG,学生可以设计和调试简单的程序,以解决逻辑推理问题,如示例中的恋爱关系匹配问题。 教学方法结合了自主阅读、交流讨论和观摩演示,以增强学生的实践能力和理论理解。对于知识表示,通过案例讨论,...

    Pythonweb后端开发框架Django、Flask、Tornado

    服务器、Web、游戏、爬虫、数据分析以及人工智能学习之路还很长技术之路不能回头陷进去就出不来就跟恋爱一般,学习中、项目中印象笔记、有道云笔记、Onenote都记了好多Python属于面向对象解释型高级动态计算机程序...

    2021单身青年安家置业调研报告-贝壳研究院-202105.pdf

    此外,尽管单身青年普遍依靠自身奋斗,但也有相当一部分人购房过程中会得到家庭的支持,女性在这一方面尤其明显。 针对不同年龄层的单身青年,90后群体的婚恋置业观表现出显著的特征。作为青年中的“中老年”,他们...

Global site tag (gtag.js) - Google Analytics