设计形式是什么

设计模式是什么
如果一个问题反复发生,那么这个问题的解决方案就会被有效使用,这种被频繁使用的解决方案就叫做模式。设计模式是语言独立(开发语言)的,主要用来解决面向对象设计的一般问题。当你设计一种方案,你应该知道一些常见的解决方案的名称。通过学习设计模式,对于有效沟通也大有裨益。实际上,你可能已经很熟悉一些设计模式了,只是没有一个众所周知的名称来描述而已。SUN建议 GOF(Gang Of Four--四个写了“设计模式”-面向对象软件的可重用组件的开拓者),所以我们使用这本书作为指导来描述解决方案。请熟悉这些规则并且学习他人处理代码问题的方式。

为什么要使用设计模式

如果你想成为专业的java开发者,你至少应该知道一些常见的代码解决方案,这些方案已经被经验丰富的开发者们证明,可以有效高效的解决代码问题,这样的解决方案就被称为--设计模式。学习设计模式可以加速你在 OOA/OOD 领域的经验积累。一旦你掌握了他们,你就会受用一生并且跻身设计和开发专家之林,另外你也可以通过这些规则与同事或者技术顾问更有效的沟通交流。
  一些用用若干年开发经验的人不知道设计模式,但是作为一个面向对象的开发者,你必须很好的掌握他们,特别是新的java程序员。实际上,当你解决代码问题的时候,你就已经在使用设计模式了,尽管你可能没有使用有名的或者可能没有选择一种很有效的方式进行构建。学习资深开发者及绝代码问题的方法试着使用这些方法到自己的工程中去,是一个获取经验和结果最好的方式。
  请记住学习设计模式真的可以改变你设计代码的方式,不仅可以让你更聪明而且会让你熟悉更多聪明的人。

设计模式数量

很多,保守估计也有250多种被应用在面向对象设计中,包括Spaghetti一种很烂的编码习惯。GOF提出的23中设计模式为人们所熟知,很多其他的也在不断被发明出来。

注意:设计模式不是习语,或者算法,或者组件。

设计模式之间的关系

一般,一个系统需要多种设计模式配合构建,对于同一问题,不同的设计者也会采用不同的设计模式解决。一般:

      
  • 一些设计模式自动组装在一起
  •   
  • 一个模式领导其他模式工作
  •   
  • 一些模式很像而且可以互相替代
  •   
  • 模式是可见的和文档化的
  •   
  • 模式不是方法或者框架
  •   
  • 模式提供一个有效解决问题的可能性


参考:
Design Patterns -- Elements of Reusable Object-Oriented Software by GOF.

The Design Patterns, Java Companion -- by James W. Cooper

Sun's core J2EE Patterns

Return to top