Модули Ruby, которые используют какой-то распространенный метод: куда поместить этот метод? - PullRequest
1 голос
/ 10 мая 2011

Учитывая некоторый класс загрузчика, у меня есть три модуля, включенных в него.

Каждый из них имеет свои отличительные применения, и поэтому я разделил их на три модуля.Но, как оказалось, есть один метод, который нужен всем трем модулям.

Итак, для меня так очевидно, что должен быть лучший способ, чем определение этого метода в каждом из этих трех модулей.Должен ли я создать четвертый модуль и вставить в него этот метод, и эти три модуля должны включать эти оригинальные три модуля?Или есть лучший способ?

1 Ответ

3 голосов
/ 10 мая 2011

Да, похоже, у вас должен быть четвертый модуль.Но, похоже, вам может потребоваться иерархия классов, а не независимые плоские модули.Примените тест «is a» - можете ли вы сказать экземпляр UploaderA , который является Uploader ?Если это так, вы должны иметь

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...