メタプログラミングRubyを読んでいて、動的なメソッド定義を勉強したのですが、
動的なメソッド定義をするメリットがいまいちよくわかりません。

仕組みについては理解できたのですが、これをやることでどのように救われるのでしょうか?

class Book
    def initialize(name, author)
        @name = name
        @author = author
    end

    def self.define_component(name)
        define_method(name) do |text|
            puts @name + " is so nice book!"
            @author + text
        end
    end
end

# インスタンスの作成
wilde = Book.new("the picture of dorian gray", "wilde")
shake = Book.new("hamlet", "shakespeare")

# メソッドの作成
Book.define_component :the_picture_of_dorian_gray
Book.define_component :hamlet

# 作成したインスタンスで、新しく作ったインスタンスメソッドを利用
puts wilde.the_picture_of_dorian_gray(" is nice!")
# => the picture of dorian gray is so nice book!
# => wilde is nice!