在面向对象系统设计中, 每一个设计模式都集中于一个特定的面向对象设计问题或设计要点, 描述了什么时候使用它, 在另一些设计约束条件下是否还能使用, 以及使用的效果和如何取舍。 按照设计模式的目的可以分为创建型模式 、 结构型模式和行为型模式3大类。