オブジェクト指向プログラミング

オブジェクト指向プログラミングの基本的な考え方

オブジェクト指向プログラミングでは、極力インスタンス変数を使ってそのインスタンス自身に処理させる

インスタンスが個別に持つ情報を利用してインスタンスメソッドを呼び出して処理する。という書き方が基本。

例)

class Book
    def initialize(book_title)
        @book_title = book_title
    end

    def favorite_book
        puts "#{@book_title}が好き"
    end
end

goldenkamui = Book.new("goldenkamui")
goldenkamui.favorite_book

クラスとインスタンスの使い分け

クラス変数とインスタンス変数

例えば「表紙」という属性はBookに共通する内容なのでクラス変数(もしくは定数)がふさわしい。 一方、「ページ数」という属性はインスタンスによって違うのでインスタンス変数がふさわしい

クラスメソッドとインスタンスメソッドの使い分け

「まずはインスタンスメソッドで実現できないか?」を考える。

参考

オブジェクト指向プログラミングの考え方 - komagataのブログ

インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) | mah365