Jav*_*a P 2 java design-patterns strategy-pattern
为什么在策略模式中需要 Context 类?
例如,我想使用 zip 或 rar 压缩来压缩文件。我们可以使用带有以下文件的策略模式来解决这个问题。
1.ICompressionStrategy...Its interface
2.ZipCompressionStrategy ..implements IcompressionStrategy
3.RarCompressionStrategy ..implements IcompressionStrategy
4.CompressionContext..Inject IcompressionStrategy
5.Client..Inject CompressionContext
Run Code Online (Sandbox Code Playgroud)
在上面的场景中,为什么我们需要 CompressionContext 类?为什么我不能将 IcompressionStrategy 注入 Client 类?
在上述场景中使用 CompressionContext 类有什么好处?我可以避免吗?
这是我正在谈论的示例
策略模式的思想是使用可变策略自定义任务的某些部分。
在上面的例子中,上下文不仅仅是压缩文件列表。例如,它可以是一个类,它遍历文件夹层次结构,选择要压缩的文件,将它们放在一个列表中,使用压缩策略,并将压缩结果写入另一个位置。该算法可以通过提供压缩策略进行定制,该策略仅用于整个算法的压缩步骤。
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |