OK,我们再一次解决了问题,尽管总觉得哪里有点别扭,但是这段代码已经能够工作,按照敏捷软件开发的思想,不要过早地进行抽象和应对变化,当变化第一次出现时,使用最快的方法解决它,当变化第二次出现时,再进行更好的构架和设计。这样做的目的是为了避免过度设计,因为很有可能第二次变化永远也不会出现,而你却花费了大量的时间精力制造了一个永远也用不到的“完美设计”。这很像一个谚语,“fool me once,shame on you. fool me twice, shame on me.”,翻译过来的意思是“愚弄我一次,是你坏;愚弄我两次,是我蠢”。