2011-05-09 55 views
1

考虑到一些Uploader类,我有三个模块包含在其中。Ruby模块使用一些常用的方法:在哪里放这个方法?

他们各有其独特的用途,这就是为什么我把它们分成三个模块。但事实证明,这三种模块都需要一种方法。

因此,对我来说,很明显,在这三个模块的每一个模块中都必须有一个比定义这种方法更好的方法。我应该制作第四个模块并将其放入其中,并且这些原始三个模块包含第四个模块?或者,还有更好的方法?

+0

你可以写一个通用的上传类与常用的方法,然后使具有特定功能的子类。如果他们需要成为模块,那么第四个模块可能是执行您所需要的最干的方式。 – Gazler 2011-05-09 21:58:53

回答

3

是的,这听起来像你应该有第四个模块。但这听起来像你可能实际上需要一个类层次结构而不是独立的,扁平的模块。应用'是'测试 - 你能说上传器A实例上传器?如果是这样,你应该有

class Uploader 
    include FourthModule # with shared functionality for all uploaders 
    # or just go ahead and put the shared functionality right in the Uploader class here. 
end 

class UploaderA < Uploader 
end 
+0

+1表示类。这似乎是这种情况下最适合的解决方案。 – Gazler 2011-05-09 22:01:56

+0

@THANKS Peter&Glazier;从你之前的建议,那么我将这三个模块包含在UploaderA类中?而且因为这些模块被包含在Uploader类的子类UploaderA中,它具有这种重要的共享方法,所以这些模块也会“使用这种方法”吗? – 2011-05-09 22:12:34

相关问题