我一直在阅读有关OCP principal以及如何使用策略模式来完成此操作的信息。

我打算尝试向几个人解释这一点,但是我能想到的唯一示例是根据“订单”的状态使用不同的验证类。

我已经在线阅读了几篇文章,但这些文章通常不会描述使用该策略的真实原因,例如生成报告/账单/验证等。

您是否认为现实世界中有常见的策略模式示例?

最佳答案

那这个呢:

您必须加密文件。

对于小文件,您可以使用“内存中”策略,其中读取完整的文件并将其保存在内存中(例如,文件
对于大文件,可以使用另一种策略,其中部分文件在内存中读取,部分加密结果存储在tmp文件中。

对于同一任务,这可能是两种不同的策略。

客户端代码看起来是一样的:

 File file = getFile();
 Cipher c = CipherFactory.getCipher( file.size() );
 c.performAction();



// implementations:
interface  Cipher  {
     public void performAction();
}

class InMemoryCipherStrategy implements Cipher {
         public void performAction() {
             // load in byte[] ....
         }
}

class SwaptToDiskCipher implements Cipher {
         public void performAction() {
             // swapt partial results to file.
         }

}


     Cipher c = CipherFactory.getCipher( file.size() );

将为密码返回正确的策略实例。

我希望这有帮助。

(我什至不知道密码是否是正确的词:P)

08-06 14:51