我一直在阅读 OCP principle以及如何使用策略模式来实现这一点。
我打算尝试向几个人解释这一点,但我能想到的唯一示例是根据“订单”的状态使用不同的验证类。
我在网上阅读了几篇文章,但这些文章通常不会描述使用该策略的真正相似原因,例如生成报告/账单/验证等...
在现实世界中,您是否认为策略模式很常见?
最佳答案
这个呢:
您必须加密文件。
对于小文件,您可以使用“内存中”策略,将完整的文件读取并保存在内存中(假设文件 < 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() );
将为密码返回正确的策略实例。
我希望这会有所帮助。
(我什至不知道 Cipher 是不是正确的词:P)
关于java - 策略模式的真实示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370258/