一尘不染

Java战略模式的真实例子

java

我一直在阅读有关OCP主体以及如何使用策略模式来实现此目的的信息。

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

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

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


阅读 347

收藏
2020-03-05

共1个答案

一尘不染

你必须加密文件。

对于小文件,可以使用“内存中”策略,其中读取完整的文件并将其保存在内存中(例如,对于<1 gb的文件)

对于大文件,可以使用另一种策略,其中部分文件在内存中读取,部分加密结果存储在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() );

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

2020-03-05