設計模式 對外觀模式的思考

2021-06-22 13:13:13 字數 1128 閱讀 6168

外觀模式:客戶端與子系統類之間的通訊是通過乙個外觀角色進行的,外觀角色為客戶端和子系統提供了統一的介面,方便客戶端的使用和子系統的拓展。

現在需要設計乙個檔案加密的系統,該系統包含三個部分,第一部分是讀取檔案中的明文,第二是給明文進行加密,第三是將加密的資訊存放到加密的檔案中。

以上的描述對應著三個類:

filereader:用於讀取明文的檔案

encryptfile:

用於加密檔案

filewriter:用於將加密後的檔案寫入到加密後的檔案中

很顯然客戶端要實現以上功能的話不得不使用以上三個類,這樣的話如果想重用該系統的話就會出現大量的**重複。另外在更替的加密演算法後不得不修改客戶端中所有的**,不利於系統的維護。

解決上述問題的辦法;

在客戶端和業務類之間增加外觀類,解決客戶端和業務類之間過分的耦合。將外觀類抽象出來的話,就可以是系統擴充套件性更好了,這樣的話就可以使得客戶端可以針對抽象程式設計,簡化了使用者的操作。並且在更替加密演算法後也不用去修改原始碼,有利於系統的維護。

下面是相關實現:

//抽象的外觀類

public

abstract

classabstractfacade

public

voidencryptfile(string filename, stringencryptfilename)}//

業務類1

public

classfilereader

//業務類2

public

classencryptfile

//業務類三

public

classfilewriter

//客戶端

public

classclient

}執行結果:

讀取檔案****要加密的檔案.txt****中的明文資訊.

第一種加密的演算法實現檔案的加密...

將加密後的資訊****加密後的資訊...****寫入加密後的檔案****加密的檔案_encrypt.txt****中.

設計模式 外觀模式

外觀模式,我的理解就是將複雜的類進行重新封裝,將簡單的介面呈現出來,降低呼叫端和實際類的耦合性。拿 大話設計模式 上邊關於 和 的例子來說。對於不入門的股民來說,交易有些過於龐大,需要學習的東西很多,如果沒整明白就進行投資,很容易賠錢的。很多剛入 的股民都賠的很慘。而買 有提出了乙個新的觀念,我們買...

設計模式 外觀模式

何為外觀模式?外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得一子系統更加容易使用。它是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和 各子系統的演化,這種過多的耦合面臨很多變化的挑戰。uml類圖 乙個...

設計模式 外觀模式

外觀模式說白了就是為一組介面提供乙個一致的介面。例如 定義三個類a b c,每個類各定義乙個方法。class a pubic void showa cout a showa pubic void showb cout b showb pubic void showc cout c showc 定義乙...