昨晚在家看了一集《武林外传》,说的是白展堂给捕快小六教武功,就教了扎马步,郭芙蓉给莫小贝教武功,就教了个转圈圈(什么什么八卦掌)。结果莫小贝和小六比武,小六始终扎着马步,莫小贝就在他旁边转圈圈,硬是把两个人累趴下了。
虽然挺可笑,但也反映了一个问题。行为应该取决于目的,虽然那些招式号称武功,但不能制敌,不如上去捶他一顿。而我们做技术设计的,最容易犯这个毛病了,刚刚学了个新方法,新技巧,新模式,就急不可耐的用了。就像上学时刚学了个公式,做作业时就拼命用,也不管是不是应该用。
我以为,其实面向对象设计的威力之所在,是设计的原语更接近现实世界,有些书中提到“隐喻”,其实就是让我们把设计放到生活中来,找到类似的例子,再反馈到设计中去,如此反复,以完善我们的设计。而这其中,恐怕最重要的要素就是对象的职责和彼此协作机制。
崔刚 2007-11-23