state模式

状态模式:用类来表示状态。
例如客服电话,只有白天的时候才有人工服务,晚上就只有自助服务。
如果没有状态类,通常代码实现是这样的:

class Service{
	public void server(){
		if(白天){
			人工服务
		}
		if(晚上){
			自助服务
		}
	}
}

如果将白天、晚上用对象来表示,那么代码会是这样的

//状态接口,定义服务方法
interface State{
	void server();
}
//白天类
class Day implements State{
	void server(){
		人工服务
	}
}
//晚上类
class Night implements State{
	void server(){
		自助服务
	}
}

通过状态类,将原本的if else 代码进行了拆分,通过状态的变化来调用不同的类方法。

状态模式易于添加新的状态类,只需要创建新类,实现方法就行,不用改动原有代码。难于增加新方法,因为需要改动原有类,并在所有状态类中都要实现新添的方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值