設計模式之裝飾模式和代理模式區別與聯絡
1.最常見的代理就是許可權判斷了,許可權就肯定是限制了
2.裝飾模式是指增強被包裝物件的功能
代理模式是修改被代理物件的行為
3.例子:
1.裝飾模式:對被裝飾的物件增加額外的職責,滿足里氏代換原則(子類可以代替父類)
如:杯子生產線,杯子必須可以裝水,在生產線上可以給杯子塗顏色,加杯蓋,
但要保證杯子可以裝水。
2.代理模式:對被代理的物件提供訪問控制。
如:客戶訂購商品,可以直接從廠家訂購,也可以從網上商城訂購,網上商城是廠家
的代理,從網上商城訂購商品,商城可以對商品進行控制,不交錢不給商品,人不在
不給商品,也可以贈送你額外的禮品,代金券。
4.例子二:
舉個例子 A類是原始功能的類, B是裝飾模式中對A類的擴充套件之後的類, C是代理模式中對A類的擴充套件
對於使用者呼叫來說。
使用裝飾模式, 使用者更關係的是B的功能(包含A的原始功能)。
使用代理模式,使用者更關心A的功能。並不關係(c的功能)。
我思所得:當要擴充套件一個類的功能時,用裝飾,如果要對原有的方法進行改進,則用代理
這就是真理呀,就像前面關閉資料庫的那個close()功能,它也是把這個功能
改為結束利用,將連線還給連線池。(厲害,可以的)