java 設計模式之門面模式

2021-07-14 05:46:26 字數 1192 閱讀 6433

面模式(facade pattern),又稱外觀模式,為子系統中的一組介面提供乙個一致的介面, facade 模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。簡而言之,就是把一堆複雜的流程封裝成乙個介面供給使用者更簡單的使用,這個設計模式裡有三個角色:

1)門面角色( facade ):這是門面模式的核心。它被客戶角色呼叫,因此它熟悉子系統的功能。它內部根據客戶角色已有的需求預定了幾種功能組合。

2)子系統角色(subsystem):實現了子系統的功能。對它而言, façade 角色就和客戶角色一樣是未知的,它沒有任何 façade 角色的資訊和鏈結。

3)客戶角色:呼叫 façade 角色來完成要得到的功能。

乙個普通的小案例:

子系統及門面類

package sjms.mm.******;

public

class fade

public

void

testb()

public

void

testc()

}class a

}class b

}class c

}

測試

package sjms.mm.******;

public

class clinet

}

再來個形象的案例吧,我們去旅遊定乙個旅館:

子系統有餐廳,打掃衛生,開房,泡溫泉等等,乙個門面類前台

package sjms.mm.complex;

public

class hotelfade

public

void

servicefood()

public

void

serviceclean()

public

void

serviceroom()

}class servicefood

}class serviceclean

}class serviceroom

}

客戶端測試:

package sjms.mm.complex;

public

class clinet

}

java設計模式之門面模式

顧名思義 就如同現實世界中的商店,衣服店等門面一樣.我們只需要把錢給人家,拿到自己需要的東西.對於這個商品從 來,又是怎麼造出來的我們大不必要關係,我們只需要關心這個東西好用不用,實用不實用.我們就拿過去經常使用的寫信來舉個例子,首先看圖如下 如下 package com.pattern publi...

JAVA設計模式之門面模式(外觀模式)

現代的軟體系統都是比較複雜的,設計師處理複雜系統的乙個常見方法便是將其 分而治之 把乙個系統劃分為幾個較小的子系統。如果把醫院作為乙個子系統,按照部門職能,這個系統可以劃分為 門診 劃價 化驗 收費 取藥等。看病的病人要與這些部門打交道,就如同乙個子系統的客戶端與乙個子系統的各個類打交道一樣,不是一...

設計模式之門面模式

coding gbk coding utf 8 author edgar 這是門面模式的乙個應用場景。具體故事情節請見 設計模式之禪 門面模式把一套方法封裝起來,使用者不需要知道具體的實現細節。class letterprocessimpl object def writecontext self,...