并查集
定义:并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。
核心思想
- 以一颗有根树代表每个集合。
- 每个节点维护一个指向其父节点的链接。
- 对于每个集合根节点为该集合的代表。
- 例如: 集合{x,y,z}和{a,b,c,d}。

考虑一个car类,有个brake(制动)方法,多个汽车模型可能拥有几种不同的制动行为。
方案一:由于制动行为在模型间频繁变化,通常的方法是通过继承来实现,在子类中实现这些行为。这种方法有很大的缺点:
方案二:将制动行为封装进一组行为类中,通过组合动态设定汽车模型对应的制动行为。当有制动行为修改或有新的制动行为我们可以操纵行为类,将行为类的实现与汽车模型分离,减少耦合度。
上述方案即为策略模式,让行为(算法)和对象分开来,使得行为(算法)可以独立于它的客户的变化。