現實世界中的策略模式:檔案加密
開閉原則(OCP)提倡設計開放的程式碼允許擴充但禁止修改。實現這一目標的一種方法是採用策略模式。雖然將其應用於不同驗證類別的概念是有效的,但還有更多策略模式發揮作用的實際範例。
考慮加密檔案的場景。加密策略的選擇取決於檔案的大小。對於小文件,將整個文件保存在記憶體中的「記憶體中」策略可能就足夠了。然而,對於較大的文件,利用部分記憶體載入和臨時文件儲存來加密結果的不同策略是最佳的。
在這種情況下,策略模式允許多種加密策略,每種策略都實現相同的介面。客戶端程式碼不知道所使用的具體策略,從而簡化了 CipherFactory 內的決策過程。
interface Cipher { public void performAction(); } class InMemoryCipherStrategy implements Cipher { public void performAction() { // in-memory encryption logic } } class SwaptToDiskCipher implements Cipher { public void performAction() { // partial memory and temporary file encryption logic } } // client code File file = getFile(); Cipher c = CipherFactory.getCipher(file.size()); c.performAction();
CipherFactory 根據檔案大小決定適當的策略並向客戶端程式碼傳回一個實例。這種設計允許在不修改客戶端程式碼的情況下無縫整合新的加密策略,遵循 OCP 的原則。結果是一個靈活且可擴展的加密系統,可以有效地處理不同大小的檔案。
以上是策略模式如何根據檔案大小增強檔案加密?的詳細內容。更多資訊請關注PHP中文網其他相關文章!