例如有Insert和Update两种操作,有两个表Table1和Table2,这时为了对两个表分别进行Insert和Update操作,我们可能会写4个类:Table1Insert、Table1Update、Table2Insert和Table2Update。这时如果要新加一种Delete操作,又要多写两个类,当操作种类越多时,即使表的数量不变,类的个数也会急剧增加,一旦表的数量也要增加,将产生不可想象的递增量。
Bridge模式正是为了解决这个问题,如下例:
首先声明一个抽象的数据操作的接口:
public interface Operator
{
void Work(string obj);
}
接着有两个具体的操作实现这个接口:{
void Work(string obj);
}
Code
接下来是一个抽象的数据对象,在它里面提供对数据操作接口的访问:Code
下面由具体的数据对象分别实现它:Code
接下来就可以对不同的数据对象进行不同的操作了,只需要为同一个数据对象通过SetOperator(Operator newOperator)设置不同的操作,就可以完成不同的任务了,很方便切换:Code