-Head First Design Pattern- 大师与门徒(2) -怀疑的蚱蜢
蚱蜢:模式只不过是利用OO设计原则...
大师:这是常见的错误观念,蚱蜢,事实比这微妙得多,你还有许多东西要学...
蚱蜢:好吧!但是不都只是好的面向对象设计吗?我是说,我懂得运用封装、抽象、继承、多态,我真的还有必要用设计模式思考吗?运用OO,一切不是都很直觉吗?这不正是我过去上了一堆OO 课程的原因吗?我认为设计模式只对那些不懂好的OO 设计的人有用。
大师:这是面向对象开发常有的谬误:以为知道OO 基础概念,就能自动设计出弹性的、可复用的、可维护的系统。
蚱蜢:不是这样吗?
大师:不是!要构造OO 系统不光只有懂这些观念就可以,事实证明只有透过不断地艰苦实践,才能成功。
蚱蜢:我想我开始了解了,这些构造OO 系统的经验于是被整理出来...
大师:...是的,被整理成了一群『设计模式』。
蚱蜢:那么,如果知道了这些模式,我就可以减少许多体力劳动,直接采用可行的模式。
大师:对的,可以这么说。不过要记得,设计是一种艺术,总是有许多取舍的地方。但是如果你能采用这些经过深思熟虑,且通过时间考验的设计模式,你就领先别人了。
蚱蜢:如果我找不到模式,怎么办?
大师:有一些面向对象原则,适用于所有的模式。当你无法找到适当的模式解决问题时,采用这些原则可以帮助你。
蚱蜢:原则?你是说除了抽象、封装... 之外,还有其他?
大师:是的,建立可维护的OO 系统,要诀就在于随时想到系统以后可能需要的变化,现在要如何设计,以应付以后的变化。记住,知道抽象、继承、多态这些概念,并不会马上让你变成好的面向对象设计者。设计大师关心的是建立弹性的设计,可以维护,可以应付改变。
大师:这是常见的错误观念,蚱蜢,事实比这微妙得多,你还有许多东西要学...
蚱蜢:好吧!但是不都只是好的面向对象设计吗?我是说,我懂得运用封装、抽象、继承、多态,我真的还有必要用设计模式思考吗?运用OO,一切不是都很直觉吗?这不正是我过去上了一堆OO 课程的原因吗?我认为设计模式只对那些不懂好的OO 设计的人有用。
大师:这是面向对象开发常有的谬误:以为知道OO 基础概念,就能自动设计出弹性的、可复用的、可维护的系统。
蚱蜢:不是这样吗?
大师:不是!要构造OO 系统不光只有懂这些观念就可以,事实证明只有透过不断地艰苦实践,才能成功。
蚱蜢:我想我开始了解了,这些构造OO 系统的经验于是被整理出来...
大师:...是的,被整理成了一群『设计模式』。
蚱蜢:那么,如果知道了这些模式,我就可以减少许多体力劳动,直接采用可行的模式。
大师:对的,可以这么说。不过要记得,设计是一种艺术,总是有许多取舍的地方。但是如果你能采用这些经过深思熟虑,且通过时间考验的设计模式,你就领先别人了。
蚱蜢:如果我找不到模式,怎么办?
大师:有一些面向对象原则,适用于所有的模式。当你无法找到适当的模式解决问题时,采用这些原则可以帮助你。
蚱蜢:原则?你是说除了抽象、封装... 之外,还有其他?
大师:是的,建立可维护的OO 系统,要诀就在于随时想到系统以后可能需要的变化,现在要如何设计,以应付以后的变化。记住,知道抽象、继承、多态这些概念,并不会马上让你变成好的面向对象设计者。设计大师关心的是建立弹性的设计,可以维护,可以应付改变。