您有一台具有 3 种状态和 2 种方法的 ATM 机。如果这是模式的伪实现。
01-- class AbstractATMState
02-- Operation1
03-- Operation2
04--
05-- class State1 : AbstractATMState
06-- Operation1
07-- Operation2
08--
09-- class State2 : AbstractATMState
10-- Operation1
11-- Operation2
12--
13-- class State3 : AbstractATMState
14-- Operation1
15-- Operation2
如果Operation1
3 种状态具有相同的行为,您只需将实现放在Operation1
第 02 行,但是如果Operation1
只有 2 种状态具有相同的实现而第 3 种状态具有不同的实现呢?你将如何在不重复代码的情况下解决这个问题?
PS这当然是一个非常简化的例子,但是同样的概念将继续说40个状态和7个操作要实现。