現実世界のコンテキストにおける戦略パターン: ファイル暗号化
オープンクローズド原則 (OCP) は、オープンなコードの設計を提唱しています。拡張は可能ですが、変更は禁止されています。これを達成する 1 つの方法は、戦略パターンを採用することです。これをさまざまな検証クラスに適用するという概念は有効ですが、この戦略パターンが光る実践的な例がさらにあります。
ファイルを暗号化するシナリオを考えてみましょう。暗号化戦略の選択は、ファイル サイズによって異なります。ファイルが小さい場合は、ファイル全体をメモリ内に保持する「インメモリ」戦略で十分な場合があります。ただし、より大きなファイルの場合は、部分的なメモリの読み込みと暗号化結果の一時ファイル ストレージを利用する別の戦略が最適です。
このコンテキストでは、戦略パターンにより、それぞれが同じインターフェイスを実装する複数の暗号化戦略が可能になります。クライアント コードは使用される特定の戦略を認識しないため、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 中国語 Web サイトの他の関連記事を参照してください。