问题标签 [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.

0 投票
1 回答
369 浏览

c# - 实施更好的策略模式

我有一个支票账户和一个储蓄账户。我正在探索如何使用 Strategy 模式来实现withdraw 方法。

目前,Checking 和 Saving 账户都继承自 Account。对于储蓄账户,提款不应导致余额低于 100 美元。使用支票账户,提款必须包含支票号码。

我对使用这种方法没有信心,因为正如您将在下面看到的那样,“otherArguments”参数在一种情况下完全没用。我拥有它的唯一原因是“展示”策略模式的使用。

(对于那些担心的人,这是学校项目的一部分,下面的所有代码都是我编写的,我很好奇是否有更好的方法来完成它)。

这是我到目前为止所做的:

0 投票
1 回答
1117 浏览

objective-c - 目标 C - 策略模式?

我理解“策略模式”的概念,但我还是有点困惑。

假设我们有一个名为 的类DogDoghas MovementBehaviour(interface) 可以是MovementBehaviourNormaland MovementBehaviourFastMovementBehaviourNormal并且MovementBehaviourFast都包含一个名为move.

问题:从方法中访问狗属性的最佳方法是move什么?MovementBehaviour将狗对象作为代表传递给它是一个坏主意吗?

0 投票
5 回答
4136 浏览

c# - 使用工厂模式保存数据?

我已经越来越熟悉工厂模式(以及策略模式)以及该模式可以带来的巨大好处。但是,我一直在努力应对以下情况:

以前,我会做类似以下的事情,其中​​有一个可以构建和保存汽车的管理器类。这里没有依赖注入,实现起来很糟糕,尤其是在尝试进行单元测试时。

我现在看到了如何Factories为我制造不同的汽车,无论是来自数据库还是其他任何地方!这很棒!所以,这是我的问题:

Q1:我的理解Factories应该只构建对象,对吗?如果是这样,那我的第二个问题呢?

Q2:如果我遵循工厂模式来构建我的对象,我应该如何保存我的对象?是否有不同的模式,或者我没有完全理解工厂模式?

0 投票
9 回答
25666 浏览

design-patterns - 策略模式和依赖注入有什么区别?

策略模式和依赖注入都允许我们在运行时设置/注入对象。策略模式和依赖注入有什么区别?

0 投票
2 回答
5254 浏览

c# - Unity 解决多个类

如何让微软统一为给定的接口类型“构建”一个类列表。

非常简单的例子:

谢谢!

0 投票
2 回答
4932 浏览

design-patterns - 模式策略、访问者和模板方法有什么区别?

我正在上课,我们刚刚了解了这些设计模式。但是我看不出它们之间有什么区别。它们听起来很像,在抽象类之上创建具体类。有人可以帮我消除这个疑问吗?谢谢 (:

0 投票
6 回答
943 浏览

oop - 策略模式正确吗?

我希望你能帮我解决我的问题:

我有一个班级做肥皂电话。但是,如果肥皂定义发生变化,我将不得不编写一个新类或从它继承等。所以我找到了解决方案来编写类似的东西:

好吧,代码很糟糕,我知道。然后我读到了策略模式,我想,哇,这就是我需要摆脱这个糟糕的 switch-case 的东西:

但我无法避免在我的代码中使用“ifs”或 switch case。这可能使用 OO 技术吗?

编辑:GetSoapVersion-Function 应该是静态的

0 投票
5 回答
5750 浏览

design-patterns - 何时以及如何应用策略模式而不是装饰器模式?

我正在学习设计模式并尝试遵循 Go4 书。在第 179 页,在装饰器模式章节中,有一行说

“..通过将策略的数量从一个扩展到一个开放式列表,我们可以实现与递归嵌套装饰器相同的效果。”

我不太明白这个说法。

策略专注于拥有独立的算法,这些算法可以动态设置,并且不太了解它们所在的客户端。

而装饰者并不完全独立于他们所装饰的客户。事实上,它们与它们装饰的对象具有相同的超类型。

我在这里错过了一点吗?

0 投票
1 回答
290 浏览

oop - 如何在策略模式中使用外部类?

我为扑克手牌历史文件解析器(PHP 或 Java 代码)实现了一个策略模式。我在为几种策略使用的类和对象创建一个干净的 OOP 方式时遇到了问题。

在真实生活中 :

我有一个有手的类游戏

一种策略将创建一个对象 Game and the Hands

而且这种策略需要特定的游戏属性,我不能将这些属性放入 或游戏中,尽管只有一种策略使用,而其他策略不使用。我的问题是:最好的 OOP 方式是什么?为策略创建特定的类?

这似乎是显而易见的答案,但我仍然想知道是否有更好的方法。此外,我在语义上有一个问题:我应该给我的班级起什么样的名字(HandFor...感觉不好!)。我是一个老派程序员,非常程序化,我浪费了很多时间来思考“干净的”OOP!

0 投票
3 回答
11121 浏览

java - 如何用spring高效地实现一个策略模式?

我有一个使用 Spring 框架在 Java 1.5 中开发的 Web 应用程序。应用程序包含“仪表板”,它们是简单的页面,其中重新组合了一堆信息,用户可以在其中修改某些状态。经理希望我在数据库中为其中三个仪表板添加一个日志系统。每个仪表板都有不同的信息,但日志应按日期和用户登录进行跟踪。

我想做的是实现这样的策略模式:

应用上下文.xml:

因此,在这个解决方案中,我没有使用依赖注入。这样做是“正确的”(良好的做法,表现,......)吗?有没有更好的方法可以使用 DI ?

注意:我没有编写诸如构造函数和 getter/setter 之类的基本内容。