如何在Perl中编写策略模式的干净实现?我希望以一种利用Perl功能的方式来实现.
任何人都可以确切地解释战略模式如何与控制反转相关联?
我有一段代码,我开始将策略模式放在适当的位置,如下所示:
IStrategy
StrategyA : IStrategy
StrategyB : IStrategy
StrategyC : IStrategy
Run Code Online (Sandbox Code Playgroud)
界面上只有一个Calculate方法.在实现之后,结果发现所有3种具体类型都具有相同的Calculate方法代码和两个同名的Properties,只是设置了不同的值.
因此,为了删除重复,我使接口成为一个抽象类,并将方法和属性向下移动到那个,只需在具体类型的构造中设置基本属性及其各自的值.
现在我知道模式并不是硬性规定,而是规则,但是我已经从指南中歪曲了这一点,我不禁想到还有另一种我应该关注的模式?
任何人都可以建议任何其他方法,让我这样,很容易添加新的'策略'下线.可能会发现我们需要改变其中一些新案例中的逻辑,所以我怎样才能构建它以便我没有重复的代码,但是有一个灵活的设计可以让我改变一下呢?
谢谢.
我是设计模式的新手,我正在努力学习策略模式.在这里和oodesign.com上阅读了一些例子之后,我对它的意图有了一个公平的理解.但是,我发现的大多数例子都是Java,C#或C/C++; 这些语言更有条理,迫使你有类等.谈到像计划这样的动态语言,我无法想象如何实现这种模式.有人能告诉我一个例子吗?
我正在尝试实施战略模式.这是我实施的一部分:
public List<string> GetOrderedEmployeeNames(IOrderByStrategy strategy)
{
return GetEmployeeFullNames().OrderBy(strategy.Order);
}
Run Code Online (Sandbox Code Playgroud)
现在每次我调用这个函数我都要写:
var employees = GetOrderedEmployeeNames(new OrderByFamilyName());
Run Code Online (Sandbox Code Playgroud)
每次正确的方式或者我是否错误地实施了这个策略?
我编写了一个Java程序,它读入一个包含要执行的命令的文件(用我自己编写的语言).命令以字符串形式读入并放入数组中.现在,"调度程序" - 方法将循环遍历数组,解释命令并调用将对其执行操作的相应方法.
这当然导致了一大堆嵌套的if语句:
if commandReadIn == this, do that...
if commandReadIn is of type x, get next element,treat next element as argument...
etc.
Run Code Online (Sandbox Code Playgroud)
现在我只有一些命令,但如果我想添加数百个呢?代码将变得无法维护.
现在我想知道是否可以完全摆脱条件逻辑.这里的命令模式似乎没什么用,因为我不得不在某个时候解释字符串..这意味着很多嵌套的"if".如果不可能,那么以一种能够轻松添加,编辑或删除命令的方式重构命令及其语法的最佳方法是什么?
我正在尝试理解java中的策略模式和枚举.我用谷歌搜索了这篇文章并找到了一些关于这个主题的文章,但是大多数文章看起来都太复杂了.任何人都可以提供一个简单的示例或其他链接,使用java在外行术语中使用枚举来演示策略模式吗?
提前谢谢你.
我正在开发一种类似于铁路票务的解决方案.
背景:泰米尔纳德邦有18个火车站.乘客需要一张票.对于最多5站的旅程,票价是10卢比.在5个车站之后,每5个车站将收取5卢比的额外费用.对于完整的拉伸旅程,即从第1站到最后一站,票价是卢比.20.
例如
Input 1 : StationFrom - Guindy, StationTo - Kadambakkam
Output 1 : Print ticket. i.e. StationFrom : Guindy, StationTo : Kadambakkam, Total Stops : 3, Total Fare : 10
Input 2 : StationFrom - Guindy , StationTo - Chennai Fort
Output 2 : Print ticket. i.e. StationFrom : Guindy, StationTo : Chennai Fort, Total Stops : 8, Total Fare :15
Run Code Online (Sandbox Code Playgroud)
将来,可以添加更多关于票价计算的业务规则.
问题是,哪些设计模式在票价计算中是正确的选择?
oop design-patterns decorator strategy-pattern builder-pattern
我想加入使用策略模式和 DI。
class A : IBase
{
public void Do();
}
class B : IBase
{
public void Do();
}
interface IBase
{
void Do();
}
class Context()
{
private _usedClass;
void SetClass(IBase usedClass)
{
_usedClass = usedClass;
}
public void Do()
{
_usedClass.Do();
}
}
void Main()
{
var context = new Context();
var someEnum = SomeMethod();
//how to use here DI resolve to get appropriate class instead of if/else?
if (someEnum == MyEnum.A)
context.SetClass(new A());
else if (someEnum …Run Code Online (Sandbox Code Playgroud) .net design-patterns dependency-injection strategy-pattern autofac
在我的Angular(4+)应用程序中,我想创建一个基本的插件机制:
示例:SearchStrategy与实现的接口PersonSearchStrategy和DocumentSearchStrategy(两个服务,注册为提供者).
有没有办法通过查询SearchStrategy接口的实现来动态获取这些服务的实例?怎么样?
(可能是一些与注射器相关的功能?)