
這個架構沒有什麼問題,問題在應用的範例上。
int main(void) {
DrawingAPI1 dap1;
DrawingAPI2 dap2;
CircleShape circle1(1,2,3,&dap1);
CircleShape circle2(5,7,11,&dap2);
circle1.resizeByPercentage(2.5);
circle2.resizeByPercentage(2.5);
circle1.draw();
circle2.draw();
return 0;
}這個範例,用了Bridge的架構,但卻沒有將Bridge的精神發揮出來。
這裡面有兩個circle,用不同的drawing api,這樣的需求,我們可以用更簡單的物件結構來做。

這讓我想到最近在書上讀到的一個觀念--不要為了使用Pattern而使用Pattern。要用Pattern來簡化設計,而不是讓Pattern把設計搞得更複雜。
好,所以說,這個範例應該改成這樣...


沒有留言:
張貼留言