在Ruby項目我的工作,我想補充的ActiveRecord風格,MVC功能類似如下的混入建築類型號:在mixin模塊中設置類變量的乾淨界面是什麼?
module Model
# Classes that mixin this module gain ActiveRecord-style class methods
# like Model.all, Model.first, Model.last et al.
#
# Throughout this module, @@database_bridge will contain a reference to a
# database ORM bridge, that does the dirty implementation of these methods.
def all
# Implementation stuff here, using @@database_bridge as appropriate
end
def first
...
end
# et al
end
class ExampleModel
extend Model
# Model-specific implementation goes here...
end
調用e = ExampleModel.first
將在數據庫中分配第一ExampleModel
到e
。
我想在運行時使用依賴注入來設置@@database_bridge
,這樣每個包含extend Model
的類都使用相同的指定ORM對象。
我該怎麼做?
如果我可以編寫某種輔助方法來根據需要設置類變量,那就太好了。
如果有人認爲我會更好地繼承基礎「模型」類的東西,那真的不符合我的類層次結構。 該框架在其_core_不是MVC,它只是使用MVC風格的類方法作爲從數據庫中提取東西的優雅方式。 – ChasingTheJames