一、根据目的来分
创建型模式:用于描述怎样创建对象。主要特点是将对象的创建与使用分离。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。
结构型模式:用于描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象。
行为型模式:用于描述程序在运行时复杂的流程控制。即描述类或对象之间相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责。它也分类行为模式和对象行为模式,前者采用继承机制在类间分配行为,后者采用组合或聚合在对象间分配行为。
二、根据作用范围来分类:
1.类模式:用于处理类与子类之间的关系,这些关系通过继承建立。工厂方法、适配器、模板方法、解释器属于该模式。
2.对象模式:用于处理对象之间的关系。可以通过组合或者聚合来实现,运行时可以变化,根据动态性。除了以上四种,其余都是对象模式。