可以说,设计模式是面向问题的,即每一种设计模式都是为了解决一种特定类型的问题。因此,根据设计模式要解决的问题将设计模式分为三类,分别为创建型、结构型和行为型。
事实上,面向对象的设计中,需要解决的就是:如何管理系统中的对象、如何组织系统中的类与对象、系统中的类与对象如何相互通信。这三类设计模式分别解决了这三个方面的问题。
创建型设计模式主要解决对象创建的问题。在最简单的情况下,在程序中定义类,在使用时创建一个对象实例。但在实际开发中,对象的创建会变得复杂很多,这时就需要使用创建型设计模式解决创建对象的问题。
随着开发系统的不断扩张,系统功能更加丰富,模块之间的复用越来越多,系统中类与对象的结构变得更加复杂。如果缺乏良好的设计,这些类之间的关系将会变得非常混乱。结构型设计模式就是为了解决这些问题的。
除了这种分类方法外,GoF 还提出了可以根据设计模式主要应用于类还是对象来对设计模式进行分类,对于这种分类方法就不再赘述了。综合这两种分类方法,可以把 GoF 模式进行分类,如表 10-1 所示。
随着 GoF 设计模式的提出,后人也总结出了更多的良好设计的范本,并根据其他的方法进行分类。例如,在《Core J2EE Patterns》一书中,作者将书中列举的 Design Pattern分为表现层模式、业务层模式和综合层模式。根据这种分类方法,可以得到应用于 J2EE 框架的设计模式图谱,如表 10-2 所示。
设计模式的分类
最新推荐文章于 2024-07-02 11:50:30 发布