Методы преодоления единственной проблемы наследования? - PullRequest
0 голосов
/ 28 января 2011

Какие методы существуют в ruby ​​для преодоления правила единственного наследования?

это просто использование модулей?

1 Ответ

2 голосов
/ 28 января 2011

Да, модули являются ответом в целом. Если у вас есть более конкретные потребности (например, наличие класса, объединяющего функциональность двух разных классов), существуют другие варианты, например делегирование.

Обратите внимание, что если вам нужен модуль для предоставления методов класса для тех, кто его наследует, вы, вероятно, захотите использовать этот общий шаблон:

module Foo
  def aaa
    "hi"
  end
  module ClassMethods
    def bbb
      "mom"
    end
  end
  def self.included( other )
    other.extend ClassMethods
  end
end

class Bar
  include Foo
end

puts Bar.new.aaa, Bar.bbb
#=> hi
#=> mom
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...