適配器模式
特點(diǎn)在于
主要是對(duì)現(xiàn)有接口做轉(zhuǎn)換
一般用于解決接口不匹配問(wèn)題
裝飾模式
特點(diǎn)在于
被裝飾的對(duì)象必須是外部傳入的,常見的是構(gòu)造方法傳入
一般用于功能增強(qiáng),可能會(huì)有很多層裝飾,可以隨意排列組合。典型應(yīng)用:java.io包
代理模式
特點(diǎn)在于
隔離調(diào)用類和被調(diào)用類的關(guān)系,通過(guò)一個(gè)代理類去實(shí)現(xiàn)
一般用于訪問(wèn)控制
適配器模式VS裝飾模式
- 適配器包裝的是不同類型的對(duì)象,然后將其偽裝成自己的同類;裝飾者包裝的是自己的同類,相同的接口或者父類
適配器模式VS代理模式
適配器是自己新建接口并實(shí)現(xiàn),在實(shí)現(xiàn)中包含被適配的接口;代理模式與源對(duì)象實(shí)現(xiàn)同一接口
適配器模式主要改變所考慮對(duì)象的接口;而代理模式不能改變所代理對(duì)象的接口,只能控制對(duì)其的操作
裝飾模式VS代理模式
裝飾模式從來(lái)不創(chuàng)建被裝飾的對(duì)象,它總是添加新功能到已經(jīng)存在的對(duì)象上面;而代理模式在被代理對(duì)象不存在的時(shí)候會(huì)創(chuàng)建被代理對(duì)象
裝飾模式可以通過(guò)嵌套裝飾添加多重額外功能,而代理模式一般不推薦使用嵌套代理