在一个软件系统中,模式很少独立存在,往往是多个模式相互组合,用于解决特定的问题。而其中的一种组织方式的模式就是模式集合。随后,根据不同的需求,再对进行分门别类。如《POSA 5》所介绍的几种方式:
即时(ad hoc)组织。
根据层次划分:根据抽象、粒度和规模的层次划分。
根据领域组织:电信、金融、电子商务等。
根据分区组织:归属于架构的哪一部分。如层、阶层(tier)、组件和包都是分区的例子
根据意图组织:如 POSA、GoF 的 23 种设计模式、DDD
……
接着,让我们来看几个分类示例。
设计模式的组织
在《设计模式》一书中,引入的概念是『设计模式空间』,在这里它们被分为了三大类:
创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式
其划分的两条准分别是: 目的准则,用来完成什么工作;范围准则,指定的模式是用于类还是用于对象。