設計模式之adapter bridge模式

2021-08-25 07:21:13 字數 1071 閱讀 3077

先說adapter模式

adapter中文為介面卡模式,目的和想法很簡單,就是一種封裝,只不過這種封裝是為了從介面a到達介面b,啥個意思呢,a已經提供功能了,但是另外乙個東西只能使用b的介面,所以得弄乙個東西將a轉換成b介面,這個轉換器就是adpater。從這個描述可以看到,我們實際上有三個東西。

a----adapter-----b。其中a叫adaptee,b叫target。

怎麼實現呢?通常有2種方法:

adapter---繼承a,b,這樣使用b的時候,實際是adapter物件,這叫類繼承。

另外一種是adapter包含乙個a,而繼承b,這樣通過adapter的**機制把工作交給a--例項來做。

adapter相對比較簡單,但是在日常設計的時候一定要想到層次的概念。

bridge是橋接模式,它的主要目的是把功能實現和功能定義分開,尤其是在不同平台上的時候。

組成物件有: product,這個是乙個介面,在不同平台上有具體的concrete-product,那麼product的功能,你可以在不同的concrete-product中去實現,而concrete product本身就是平台a,b上的實行,這是一種方法,但是:

1 如果平台個數很多,那麼你在整個產品類中就得不停得增加子類,麻煩....

2 所以就把實現分離到單獨的類中,叫implementor中去了。那麼只要在product中包含乙個指向implementor的指標,具體的工作就有concrete-impl去完成就行了。product不一定是介面了..。

剛才想了個例子,這個要和factory方法來比較才能搞明白。

比如,netserver類,跨平台,factory方法就是實現winnetserver,linuxnetserver,以後要開發別的啥比如netclient,就比較麻煩了,平台對應的socket方法又得重寫一遍。

如果採用bridge方法,我先定義implemtor,例如listen,send,receive方法,然後實現winimpl,linuximpl。

那麼不論netserver還是netclient就好辦了,直接搞個implementor,至少win,linux相關的**都放到implentor去了。這可能是2個庫喔。

設計模式之禪之設計模式 門面模式

1 package com.yeepay.sxf.template18 2 3 寫信的業務類 4 隱藏在門面角色裡邊,不需要暴露太多5 author sxf6 7 8public inte ce iletterprocess view code 寫信的業務類的實現 1 package com.yee...

設計模式之禪之設計模式 橋梁模式

1 package com.yeepay.sxf.template24 2 3 實現化角色 4 相當於不同的業務邏輯,抽象出共有行為5 6 產品類7 author sxf8 9 10 public abstract class product view code 房子產品實現 1 package c...

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...