这是什么样的设计模式?

时间:2013-03-17 10:17:44

标签: ruby-on-rails ruby design-patterns

在我的网站上,我有一些功能,我想要这些功能。禁用用户群。我创建了一个类,它以高效的方式实现了这个逻辑,因此它通过一个查询加载所有功能等。有点简化它看起来像这样:

class FeatureAdapter
  attr_accessor :controller

  delegates :current_user, to: :controller

  def initialize(controller)
    self.controller = controller
  end

  def enabled?(name)
    # logic here
  end

  private
  def feature(name)
    features.find { |f| f.name == name }
  end

  def features
    @_features ||= Feature.all
  end
end

这种设计模式的名称是什么?我会说,它是一个适配器,但我不确定。

2 个答案:

答案 0 :(得分:0)

您正在做的事情称为功能切换,功能切换或功能切换。马丁福勒确实很好地记录了here

讨论如何在rails here中执行此操作,并且实际上有一些宝石就像名为feature flipper的名字一样。

答案 1 :(得分:0)

我不知道这是不是真的模式。在德语中我会称之为Customizing

非IT英语等效词是Mass_customization

Personalization可能是一个特例。