首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >策略模式修改

策略模式修改
EN

Stack Overflow用户
提问于 2013-09-05 15:31:19
回答 3查看 106关注 0票数 1

当每个ConcreteStrategy都与DataStorage对话时,如何修改经典的策略模式?数据存储有不同的类型,接口取决于具体的策略。

EN

回答 3

Stack Overflow用户

发布于 2013-09-05 16:12:26

通过构造函数注入使您的策略依赖于DataStorage。然后每种策略都可以随心所欲地使用DataStorage。

如果DataStorage实现了许多接口,请使每个策略都依赖于该特定接口。

票数 1
EN

Stack Overflow用户

发布于 2013-09-05 15:49:30

一个简短的答案可能是:

首先定义用于数据存储的通用接口,如下所示:

代码语言:javascript
复制
Query()
Update()
Delete()
Add()
Create()

其次,在每个具体的数据存储实现类中实现这些接口。

当你使用这些类对象时,你通过接口方法调用方法,真正的任务载体是特定的对象。

票数 0
EN

Stack Overflow用户

发布于 2013-09-07 04:57:38

记住,模式只是一件普通的事情。你可以做任何你需要做的事情,让这个模式在你的情况下工作。你可以将你的策略与Factory,Memento等结合起来。现在每个人都在谈论“注入”。但是使用接口已经存在很长时间了。

代码语言:javascript
复制
public class ConcreteStrategy : IStrategy 
{
    protected IDatastorage _dataStrorage;
} 

这应该就行了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18630320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档