17.4 写在模式之后
很久之前,和朋友去一家快餐店吃饭,我点了一个汉堡、一包薯条和几包番茄酱,我留下了一包番茄酱,把其他所有番茄酱都挤到汉堡中了,我的朋友瞪大眼睛看着我,然后一本正经地对我说,番茄酱是用来吃薯条的,不是吃汉堡的。我顿时哑然失语。
模式不是你把它们强加于你的设计,你的设计就会变得优雅而成功了;最重要的事情是了解你的领域问题本身,你如果能够清楚认识你的问题本质而非臆想它们时,你就能在设计时自然而然地选择它们、使用它们。当你需要番茄酱作为调味剂的任何场合,只要你需要它,你就可以添加它,不会再有“番茄酱是用来吃薯条”的束缚。
我们要避免刻意地为使用模式而拼装设计,这不会带来优雅的设计,而是要站在你的问题上,使用OO眼光,分析你所遇到问题的本质,只要到那一步,不管问题有多复杂,我们总能够找到需要的模式(不管是别人的还是自己创造的)把我们领入设计的道路。也许那时,你就真正地懂得了OO设计,至于设计模式,也就没有那么重要了。
我相信,读者通过这本书的介绍,得到的不仅仅是了解模式,而是学会使用OO的眼光分析问题,解决问题。