策略模式的實際應用
策略模式遵循開閉原則,可以輕鬆地建構系統無需修改現有程式碼即可擴展。策略模式的一個常見的現實應用涉及文件加密。
考慮一個場景,根據檔案大小需要不同的加密策略。對於小文件,記憶體策略會載入整個文件並在記憶體中對其進行加密。但是,對於較大的文件,交換到磁碟策略更有效,它可以加密文件的部分並將中間結果儲存在臨時文件中。
無論使用哪種策略,客戶端程式碼都保持不變:
File file = getFile(); Cipher c = CipherFactory.getCipher(file.size()); c.performAction(); // Implementations interface Cipher { void performAction(); } class InMemoryCipherStrategy implements Cipher { @Override public void performAction() { // Load in byte[] .... } } class SwapToDiskCipher implements Cipher { @Override public void performAction() { // Swap partial results to file } }
CipherFactory.getCipher() 方法根據檔案大小決定適當的策略。這種方法可確保加密過程無縫處理,無論檔案大小如何。
以上是策略模式如何解決基於檔案大小的檔案加密挑戰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!