State模式

State模式主要适用于在不同状态下会有不同的行为产生。即行为的变化追随状态的变化而变化。

如人们的表现行为会随着自己的心情变化而变化。

此时,状态就是心情,心情是阴晴多变的,所以表现行为就随心而动。

当我们接受几个设计模式之后渐渐会发现,很多时候在使用设计模式的时候都是由于可变性引起的,就是要针对这些可变性进行封装,已达到所谓的OCP原则。

package com.wayne.state;

public interface Mood {
	public void action();
}


package com.wayne.state;

public class HappyMood implements Mood {

	public void action() {
		System.out.println("i am happy...");
	}

}


package com.wayne.state;

public class HurtMood implements Mood {

	public void action() {
		System.out.println("i am  so losting ........");
	}

}


package com.wayne.state;

public class Context {
	private Mood mood;

	public Context(Mood mood) {
		this.mood = mood;
	}

	public void action() {
		mood.action();
	}
}


package com.wayne.state;

public class Person {
	public static void main(String args[]) {
		Mood mood = new HappyMood();
		Context cxt = new Context(mood);
		cxt.action();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值