以前初学设计模式的时候总是分不清这两个模式的区别,随着编码经验的增多同时看过一些书之后我慢慢的明白这两个模式的区别了.
Builder模式是对创建物品的过程进行的封装,Brige模式是对实现方式的封装.
这么一说,好像简单了一些,其实隐藏在这两个模式之后的原理都是一样的.首先,把变化的部分抽取出来形成一个抽象类;其次,把这个抽象类中不变的操作抽取出来形成虚函数也就是常说的接口;再次,把这个抽象类以聚合指针或者引用的方式聚合在需要实用它们的类中,因为在C++中只有引用和指针才能有多态的行为.
虽然是不同的模式,原理还是一致的.类似上面那样抽取变化和不变部分形成接口和抽象类从而形成模式的方法几乎在任何一个模式中都有体现,Statgy模式是对算法的封装,Observer是对对象的封装,Factory是对不同的创建的封装,Iterator是对不同迭代器的封装等等.
起初看设计模式的时候觉得很多模式都是一样的,后来逐渐开窍了又觉得似乎还是有区别的,现在如果再以面向对象的基本的原则来看各个模式的实现其实又是一样的了.--只是,这个从不懂到开窍到慢慢明白的过程我花去了一年多的时间.