摘要:
假设某人一整天的流程就是“吃饭→工作→睡觉”,并且他要严格按照这个流程来,那也就是说在吃饭状态下,他只能做跟吃饭有关的事情,而不能越界做工作或者睡觉有关的事情,这就涉及到了状态的管理。在写代码的时候,我们常常要根据当前的状态,来决定下一个状态并且确定当前状态下要做什么样的事情。一般来讲,我们会写一系列的if-else if-else if-else语句来实现,但是要是状态非常多的时候,这种代码不仅... 阅读全文
摘要:
经典的策略模式如下图所示:让我解释一下这幅图的含义,IContext是上下文的接口类,IStrategy是策略的接口,IStrategy依赖于IContext,也就是IContext里面存有一个IStrategy的策略字段。其实策略模式说白了,就像诸葛亮给刘备的锦囊妙计一样,遇到一种具体的情况,采取一种相应的策略。也就像我们平时会观察天气,根据今天有没有下雨,选择要不要打伞,下雨的话,那么打伞;不下雨就不打伞。下面我们用代码来演示一下经典的策略模式。我们将要做的是,从一个数组中提取一个值,这个值的提取要根据用户的选择,也就是我们要根据用户的选择提取对应的值。假设用户有三种选择,选最大值,最小值 阅读全文