在我的网站上,我有一些功能,我想要这些功能。禁用用户群。我创建了一个类,它以高效的方式实现了这个逻辑,因此它通过一个查询加载所有功能等。有点简化它看起来像这样:
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
这种设计模式的名称是什么?我会说,它是一个适配器,但我不确定。
答案 0 :(得分:0)
您正在做的事情称为功能切换,功能切换或功能切换。马丁福勒确实很好地记录了here。
讨论如何在rails here中执行此操作,并且实际上有一些宝石就像名为feature flipper的名字一样。
答案 1 :(得分:0)