以前初學(xué)設(shè)計(jì)模式的時(shí)候總是分不清這兩個(gè)模式的區(qū)別,隨著編碼經(jīng)驗(yàn)的增多同時(shí)看過一些書之后我慢慢的明白這兩個(gè)模式的區(qū)別了.
Builder模式是對創(chuàng)建物品的過程進(jìn)行的封裝,Brige模式是對實(shí)現(xiàn)方式的封裝.
這么一說,好像簡單了一些,其實(shí)隱藏在這兩個(gè)模式之后的原理都是一樣的.首先,把變化的部分抽取出來形成一個(gè)抽象類;其次,把這個(gè)抽象類中不變的操作抽取出來形成虛函數(shù)也就是常說的接口;再次,把這個(gè)抽象類以聚合指針或者引用的方式聚合在需要實(shí)用它們的類中,因?yàn)樵贑++中只有引用和指針才能有多態(tài)的行為.
雖然是不同的模式,原理還是一致的.類似上面那樣抽取變化和不變部分形成接口和抽象類從而形成模式的方法幾乎在任何一個(gè)模式中都有體現(xiàn),Statgy模式是對算法的封裝,Observer是對對象的封裝,Factory是對不同的創(chuàng)建的封裝,Iterator是對不同迭代器的封裝等等.
起初看設(shè)計(jì)模式的時(shí)候覺得很多模式都是一樣的,后來逐漸開竅了又覺得似乎還是有區(qū)別的,現(xiàn)在如果再以面向?qū)ο蟮幕镜脑瓌t來看各個(gè)模式的實(shí)現(xiàn)其實(shí)又是一樣的了.--只是,這個(gè)從不懂到開竅到慢慢明白的過程我花去了一年多的時(shí)間.