ume

Ruby オブジェクト指向について

目次

オブジェクト指向とは?

⇨①共通のデータやメソッドをテンプレート化(使い回し)し保守性や開発効率を上げる開発手法.

疑問1,共通のデータやメソッドとは?
疑問2テンプレート化(使い回し)とは?
疑問3保守性や開発効率を上げるとは?
上記の3つの疑問を解消する前に簡単な日常の例をあげてまずはオブジェクト指向の概念を知る.

例(車の製造、オブジェクト指向なし)

オブジェクト指向なし.

で車を製造する際は1種類の車を製造するためには専用の部品と1つの専門の工場が必要というイメージ。 この製造方法だと「新しい車の車種(アルファードなど)を製造したい」ってなった際毎回「専用の部品」と「専用の工場」が必要になる。これだと工場を建てるコストが高い。工場内ではどの車種でも同じ作業をするとする。また全ての工場の部品を切る作業を部品を加工する作業に変更する場合全ての工場に変更を伝達する必要がいる。

オブジェクト指向あり

オブジェクト指向で製造する場合 新しい車種を製造するってなっても工場を新しく建てる必要がない。また工場1つだと工場内で作業が変更になっても1工場だけに変更を伝えればいいので楽。

この時部品=データ.
工場=クラス.
工場内で行うこと(①部品を切る、部品を組み立てる)=メソッド.

rubyで表すと以下のようになる.


class Factory





  def initialize(name)
    @name = name
  end

  def cut_parts
    puts "#{@name}を切ります"
  end

  def assemble_parts
    puts "#{@name}を組み立てます"
  end
end

carora = Factory.new("カローラ")
carora.assemble_parts.  
#出力結果 カローラを組み立てます

保守性や開発効率を上げるとは

carora = Factory.new("カローラ")

このコードで10台車が製造されてたとして、後から処理の変更や追加をする際クラス内にメソッドを追加や変更を1箇所変えると10台全てのインスタンスで変更が適用される

なぜオブジェクト指向が必要なのか?

⇨機能の追加や修正がしやすいから。アプリは作って終わりではなく新機能の追加やバグの修正を繰り返し行うもの。その際、新機能つけるために100個のインスタンスから一つずつ同じ作業をするのはめんどくさいそういう時にオブジェクト指向でプログラムを作成すると1箇所の変更で全てに適用され楽

参考情報

www.sejuku.net