我一直在读关于OCP原理 http://en.wikipedia.org/wiki/Open/closed_principle以及如何使用策略模式来实现这一目标。
我打算尝试向几个人解释这一点,但我能想到的唯一例子是根据“订单”的状态使用不同的验证类。
我在网上读过几篇文章,但这些文章通常不会描述使用该策略的真正相似的原因,例如生成报告/账单/验证等......
您认为战略模式在现实世界中是否有常见的例子?
那这个呢:
您必须加密文件。
对于小文件,您可以使用“内存中”策略,其中读取完整文件并将其保存在内存中(假设文件
对于大文件,您可以使用另一种策略,即在内存中读取文件的部分内容,并将部分加密结果存储在 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.
}
}
The
Cipher c = CipherFactory.getCipher( file.size() );
将返回密码的正确策略实例。
(我什至不知道 Cipher 是否是正确的词:P)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)