问题标签 [strategy-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 需要策略模式帮助
那里存在interface Algorithm
存在class MathAlgorythm implements Algorithm
(returns MathResult, which implements Result
)
存在class ChemitryAlgorythm implements Algorithm
(returns ChemitryResult, which implements Result
)
此外,还有一个Context class
,用于将数据传递给这些算法。数据通过以下方式传递:
假设我,executeStrategy 并回来
return MathAlgorithm.execute(data);
我得到了 Result 类型的东西,对吗?
然后我再次执行
return ChemitryAlgorithm.execute(data);
我得到一些结果
问题: 结果是一个接口。我需要访问作为 MathResult 或 ChemistryResult 的具体类实现。换句话说。一旦我得到结果类型的东西,我需要更深入地挖掘并知道隐藏在接口后面的类
我希望这种漫谈不会太混乱。
感谢您阅读和回复
php - 子类可以实现接口吗?
我正在涉足更严重的 OOP(以前,只是使用继承),我偶然发现了一些让我感到困惑的事情。
我有一个处理我的数据库连接的超类。
我有一个处理与站点成员功能相关的连接的子类
我想采用策略模式来允许不同但相似的功能共存。例如:
- 连接到数据库并检查新注册的姓名和电子邮件
- 连接到数据库并检查用户名和确认码以进行注册确认
- 连接到数据库并检查用户名和密码以进行登录
design-patterns - ColdFusion实施策略模式
我是 ColdFusion 的新手并使用 ColdFusion MX (7),我有兴趣实施策略模式。但我不知道开始实施的最佳方式是什么。
c# - 一个简单的策略模式示例的问题
错误是:
FirstPattern.Character.Character' 不包含采用 0 个参数的构造函数
这是代码:
然后,我有一个字符类:
我不确定我应该对角色类和子类做什么。你们能把我推向正确的方向吗?
design-patterns - 策略设计模式和抽象工厂模式有什么区别?
有人可以一劳永逸地向我解释这两者之间的区别,并尝试为何时使用它们提供一种指导吗?例子会非常好。
design-patterns - Scala 中策略模式的更好替代方案?
当我使用 Java(或类似语言)进行编程时,我经常使用简单版本的策略模式,使用接口和实现类,在我的代码中为特定概念提供运行时可选择的实现。
作为一个非常人为的示例,我可能希望在我的 Java 代码中具有可以产生噪音的动物的一般概念,并且希望能够在运行时选择动物的类型。所以我会按照这些思路编写代码:
很简单。不过,最近,我一直在使用 Scala 进行一个项目,我想做同样的事情。使用特征似乎很容易做到这一点,如下所示:
然而,这看起来很像 Java 并且不是很实用——更不用说特征和接口并不是一回事。所以我想知道在我的 Scala 代码中是否有更惯用的方式来实现策略模式(或类似的东西),以便我可以在运行时选择抽象概念的具体实现。还是使用特征是实现这一目标的最佳方式?
c# - 战略模式——正确实施
我第一次使用这种模式,并使用 C#。
我只是想检查这是正确的实现。
我在 Winform 上有一个按钮,当单击该按钮时,它将以特定格式输出一些数据,通过从下拉框中选择来定义。现在这可能会在未来发生变化,因此我使用策略模式来封装变化。
我有一个“策略接口”,它只公开一个方法:“显示数据()”。
在我的按钮上单击我使用以下代码:
这是使用此模式的可接受方式吗?显然,如果识别出额外的输出媒体,那么我将简单地创建一个新的子类并在 switch 语句中添加一个额外的“case”。
谢谢。
design-patterns - “责任链”和“战略”模式有什么区别?
我提出这个问题是因为几天前我在这里问了另一个问题。
我必须解决一个特定问题,在收到两次回复后,我意识到两种模式可以帮助解决该问题(以及任何其他类似问题)。
- 责任链
- 战略
我的问题是:
这些模式之间究竟有什么区别?