戦略パターンの現実世界への適用
戦略パターンはオープンクローズ原則に準拠しており、システムを簡単に構築できます。既存のコードを変更せずに拡張できます。戦略パターンの一般的な現実のアプリケーションには、ファイル暗号化が含まれます。
ファイル サイズに応じて異なる暗号化戦略が必要なシナリオを考えてみましょう。小さいファイルの場合、インメモリ戦略によりファイル全体がロードされ、メモリ内で暗号化されます。ただし、大きなファイルの場合は、ディスクへのスワップ戦略の方が効率的で、ファイルの一部を暗号化し、中間結果を一時ファイルに保存します。
使用する戦略に関係なく、クライアント コードは同じままです。
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 中国語 Web サイトの他の関連記事を参照してください。