昨天回来,翻看书,就看到了状态模式
话题是有小菜加班引起,很自然小菜按他一天的不同时段来划分他的不同状态
不同的状态自然产生不同的行为
大鸟让小菜写出第一版,小菜习惯性的用面向过程的思考写出代码
这也是不经常用面向对象的人的第一反应,也是很多人正常的,很正向的思维
也正是有了这第一种实现方式,才有可能对这样的好坏作评价和好的改进
若是没有这些代码,第一步都没有,改也就无从谈起
这就在教我们大家一种思考模式,方向,顺序,或者叫套路
叫什么套路呢,遇到问题先按正常的思维去思考一种解决方案
有了这个解决方案,在这个基础上去思考
要是有新的需要会有什么样的改动,怎么去避免最小的改动
这就是第二步,提炼优化已有的代码,让代码更好的面向对象
职责单一,开闭原则,最高目标就是面向需要变化时,可以做最小的改动
小菜的思维很正常,针对于不同的时间段,状态不一样
他自然会想到,上午九点到十二点 是什么样的状态
下午是什么状态,晚上又是什么状态
这怎么转换成代码呢,什么都不用改
只需要用最直接的方式去照搬出这些就行了,说明一个问题
人的大脑结构,在进行选择时,如果没有思考时,会自动选择最简单,最快的方式
但这种方式,并不一定是最优的,当然这也和每个人的经历有关
可能有的人,面对同样的情况直接就是面向对象的思考方式,所以才需要先学习这些模式,来培养面向对象的思维方式
那么由小菜加班,引出的设计模式,也是面面向对象优化的方式,总结出来的好的方式
当然这有好就有坏,要选择恰当的来用
那么小菜学的状态模式到底什么样呢?