Ruby on rails 如何为每个策略制作不同的界面?
我有以下情况 我做广告轮换,我想有一些策略。但是,当不同的策略需要不同的参数时,如何做到这一点呢 e、 g: 租赁展示策略只需要收集广告 但是 用户相关策略需要收集广告和用户信息 有没有什么方法可以做到干净,或者我应该放弃使用策略模式 更新: 有几行代码,我写道。我不知道,当每个策略都有不同的需求时,如何将策略参数化Ruby on rails 如何为每个策略制作不同的界面?,ruby-on-rails,design-patterns,strategy-pattern,Ruby On Rails,Design Patterns,Strategy Pattern,我有以下情况 我做广告轮换,我想有一些策略。但是,当不同的策略需要不同的参数时,如何做到这一点呢 e、 g: 租赁展示策略只需要收集广告 但是 用户相关策略需要收集广告和用户信息 有没有什么方法可以做到干净,或者我应该放弃使用策略模式 更新: 有几行代码,我写道。我不知道,当每个策略都有不同的需求时,如何将策略参数化 class MyEngine::AdsHelper def get_ad ads = get_all_possible Engine.str
class MyEngine::AdsHelper
def get_ad
ads = get_all_possible
Engine.strategy.get_next(ads)
end
end
class MyEngine::Engine
attr_accessor :strategy
end
初始值设定项:
MyEngine::Engine.strategy = MyEngine::Strategies::ConcreteStrategy.new
考虑到该方法是基于使用一个接口和多个具体实现,我不太确定您在这里试图实现什么。我对所提供的信息的最初预感是,您的需求与战略模式并不匹配,但需要更多地了解您为提供备选方案而实际尝试实现的目标
策略模式概述伪代码
以上允许您使用生成器、工厂、DI框架或类似机制将任何特定的TaxStrategy实现注入到需要它的对象中,但需要一致的接口/抽象类来定义策略契约
希望有帮助……您需要提供更多细节,您的问题不是很清楚。。。
interface ITaxStrategy:
decimal CalculateTax (decimal Subtotal)
public class NYTaxStrategy : ITaxStrategy
CalculateTax(decimal Subtotal)
{
return Subtotal * 0.08125;
}
public class UKTaxStrategy: ITaxStrategy
CalculateTax(decimal Subtotal)
{
return (Subtotal * 0.825) + VAT;
}