首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

PHP设计模式——状态模式

当你对快乐状态,温和状态或愤怒状态有其他逻辑时。它引入了代码修改,并且记住我们在这里只是在谈论sayHi()函数。当基于情绪的条件适用于其他岗位的各个方面时,会发生什么? 是时候改变了。...在这种情况下,我们就需要使用状态模式(State Pattern)。状态模式使我们可以封装变化的部分,即sayHi函数。具体取决于支持代表的心情。...首先,让我们创建一个状态接口(StateInterface),所有后续状态都必须实现它: interface StateInterface { public function sayHi(); }...三个状态类仍然可以通过组合来更改主要类的状态。 现在,SupportRep变得更加整洁,如果需要添加任何其他逻辑,则可以将其作为单独的状态类来完成。 SupportRep的其他功能可以委托给状态类。...在我们的示例中,状态模式允许对象(SupportRep对象)在其内部状态更改(在HappyState,ModerateState和AngryState之间切换)时更改其行为(各个状态类中的sayHi()

46410

机械光开关& MEMS光开关

开关在光纤通信系统中有着广泛的应用,其实现技术多种多样,包括:机械光开关、热光开关、声光开关、电光开关、磁光开关、液晶光开关和MEMS光开关,等等。...其中机械光开关和MEMS光开关是目前应用较为广泛的两种光开关。 机械光开关的工作原理是借助机械装置物理地移动光纤来重定向光信号。通过移动棱镜或定向耦合器,将输入端的光导向所需要输出的端口。...当微镜未介入光路时,来自波导1和2的光束分别耦合到波导3和4中,端口连接状态为1→3和2→4,此为直通状态;当微镜插入光路时,来自波导1和2的光束经微镜反射,分别耦合至端口4和3,端口连接状态为1→4和...2→3,此为交叉状态。...MEMS光开关具有紧凑、切换速度快、易于扩展的优点,同时具备了机械式光开关的低插损、低串扰、低偏振敏感性、高消光比和波导开关的高开关速度、小体积、易于大规模集成的优点。

2.3K30

PHP设计模式之状态模式

PHP设计模式之状态模式 状态模式从字面上其实并不是很好理解。这里的状态是什么意思呢?保存状态?那不就是备忘录模式了。其实,这里的状态是类的状态,通过改变类的某个状态,让这个类感觉像是换了一个类一样。...public function Handle(): State { echo '当前是B状态', PHP_EOL; return new ConcreteStateA...实现的效果就是上下文类每调用一次Request()方法,内部的状态类就变成别一个状态。就像一个开关,在打开与关闭中来回切换一样。...,然后通过不停的调用Request()对象来实现开关状态的切换。...$m->discount(), PHP_EOL; 说明 如果不使用状态模式,在Member的discount()方法中,我们可能需要写很多层if...else...判断条件 同时,这也带来了方法体会越来越长

52520
领券