永发信息网

找Java状态模式应用的例子,谢谢啦

答案:1  悬赏:60  手机版
解决时间 2021-03-11 15:21
找Java状态模式应用的例子,谢谢啦
最佳答案
1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。
2,状态模式的角色:
抽象状态,具体状态(一般是几个,每一个状态下有不同的行为,),环境(context)角色(就是对象,什么对象的状态,一般该对象要初始化一个状态,还有改变状态,还有该状态下的行为)

我们打篮球的时候运动员可以有正常状态,不正常状态,和超常状态,现在我们就以我们打篮球时候投篮时候的状态来举例子,

首先我们抽象出状态,以及该状态下的行为,
interface State{
public void shot();
}
然后实现具体状态,我们这里有三个,三种状态三种行为。
不正常
public class NonormalState implements State{
public void shot(){
System.out.println("今天你投篮十中一");
}
}
正常:
public class NormalState implements State{
public void shot(){
System.out.println("今天你投篮十中五");
}
}
超常:
public class SuperState implements State{
public void shot(){
System.out.println("今天你投篮十中十");
}
}
这个时候我们来一个环境,一个运动员,正常情况下是正常状态
public class Player{
private State state=new NormalState();
public void setState(State state){
this.state=state;
}
public void shot(){
state.shot();//这里我感觉是创建型模式的适配器模式,对象适配器。应该就是这样,
}
}
测试这个例子
public class StateTest
{
public static void main(String[] args){
Player player=new Player();
player.shot();//正常下投篮
player.setState(new NonormalState());
player.shot();不正常下投篮
player.setState(new SuperState());
player.shot();超常下投篮
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
抗维生素D佝偻病的遗传特点是AA. 女性中的发
蜀门,长效背包任务哪里做,(我是指用长效背
阜阳市伍明派出所怎么去啊,有知道地址的么
求一个surfacer 11 英文版下载地址
星期天,你去找同学玩,可刚走到小区门口,就
医师为同一个患者申请一天备血达到或超过一定
金金s6和vivox6哪个好
手上戴什么水晶效果最好?
葫芦侠怎么搜索游戏并下载
属蛇的人几月出生最好
名字带水对土命人有什么影响
请高手帮我翻译下 It’s all right to have w
我发现农夫山泉的瓶子是回收的?
兔子白天会出来吗
北京欢乐谷十一有什么可靠的兼职 不要中介的
推荐资讯
下列实验操作正确的是B称量氯化钠A. B. C. D.
母亲退休过后脾气变得异常暴躁,行为乖张,怎么
宜攀高速经过会理路线图
黄玫瑰花的花语是什么
小老方车饰地址在哪,我要去那里办事
德国沃格尔钢琴榔头是什么材料做的?质量怎么
俯卧撑是落下吸气撑起呼气,用鼻子吗
肚子胀气想吐又拉稀应该吃什么药
王者荣耀好号和QQ
蚯蚓小时候长什么样
0.36米等于几分米几厘米
蒙古族传统的体育活动是AA. 摔跤B. 孔雀舞C.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?