設計模式 (七)外觀模式 Facade

2021-06-05 14:23:07 字數 1433 閱讀 1202

外觀模式(facade)為了小小的糾正一下個人的口語,於是有道了一下:[fə'sɑ:d]

對於外觀模式就是為了子系統對外提供的一組介面提供乙個統一的介面,似的其他系統對該系統訪問都通過乙個同一段的介面來完成。

外觀模式主要由三部分組成,乙個中間類,就是facade類,負責聯絡子系統提供對外的介面,乙個是多個子系統,乙個是客戶端負責通過facade類對子系統的功能進行操作

這裡通過簡單的工廠生產帽子,被子,筆賣給消費者的過程,並且用facade類的前後作對比來簡單的理解facade模式:

facade模式的原理圖:

對uml部分理解更清楚了一點,發現前面的uml好多不合理的地方,可以學習

普通基礎的設計:

package com.designpattern.facade;

public class hatfactory

}

package com.designpattern.facade;

public class capfactory

}

package com.designpattern.facade;

public class penfactory

}

package com.designpattern.facade;

public class client

}

這樣如果客戶想買各種商品的話就必須直接和廠家聯絡,然後買商品,實現起來卻是很是麻煩

但是如果引入了如下的facade類就簡單多了,具體操作如下:

package com.designpattern.facade;

public class facade

public static void salecap()

public static void salepen()

}

package com.designpattern.facade;

public class client

}

這樣在客戶買商品的時候只要去facade商店就行了,直接到商店想買什麼就買什麼,具體商店和廠家怎麼聯絡的客戶是不用去理會的,這樣就對於客戶端程式員提供了很大的簡便可行。一些很好的持久層的框架也是用這樣乙個設計模式達到乙個很好的使用者體驗。

外觀模式通過提供乙個統一的對外介面,避免的外部系統和子系統之間的直接聯絡從而降低了系統間的依賴和複雜度。

但是限制了外部系統對子系統呼叫的靈活性,只能按照外觀類中提供的方式對子系統進行呼叫。

設計模式 (七)外觀模式 Facade

外觀模式 facade 為了小小的糾正一下個人的口語,於是有道了一下 f s d 對於外觀模式就是為了子系統對外提供的一組介面提供乙個統一的介面,似的其他系統對該系統訪問都通過乙個同一段的介面來完成。外觀模式主要由三部分組成,乙個中間類,就是facade類,負責聯絡子系統提供對外的介面,乙個是多個子...

設計模式 外觀模式(Facade)

外觀模式是為了解決類與類之家的依賴關係的,像spring一樣,可以將類和類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面。我們以乙個計算機的啟動過程為例 cpu類 public class cpu public void...

設計模式 外觀 Facade 模式

insus.net在去年有寫過一篇 軟體研發公司,外觀設計模式 facade 例中寫得過於簡單與抽象。沒有實質內容似的。這次想再寫乙個。希望能再次加強。為子系統中的一組介面提供乙個統一的高層介面,使客戶使用子系統更容易這是外觀 facade 模式的精髓。在實現之前,可以先看看這篇 web控制項文字框...