我一直在阅读有关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)