スキップしてメイン コンテンツに移動

Rubyで作るクラス設計図

Rubyで作るクラス設計図

Ruby基礎とオブジェクト指向の概要

Rubyはシンプルで読みやすい構文を持つオブジェクト指向プログラミング言語です。Ruby基礎を学ぶ上で重要なのは、すべてがオブジェクトであるという概念を理解することです。数値や文字列、配列、ハッシュはすべてクラスのインスタンスとして扱われます。オブジェクト指向の概念を押さえることで、コードの再利用性や保守性が格段に向上します。

Rubyの標準ライブラリには多くのクラスが用意されており、ArrayHashStringなどを使ってデータ構造を簡単に操作できます。これらは設計図としてのクラスが提供する属性と振る舞いを持ち、インスタンスを生成することで具体的なオブジェクトが生まれます。

クラスとインスタンスの生成

クラスはオブジェクトの設計図です。クラスを定義するときは、classキーワードを使い、属性(データ)と振る舞い(メソッド)を記述します。インスタンスはクラスからnewメソッドで生成されます。以下は簡単な例です。

class Person
  attr_accessor :name, :age

  def initialize(name, age)
    @name = name
    @age = age
  end

  def greet
    puts "こんにちは、#{@name}です。"
  end
end

# インスタンスの生成
alice = Person.new("アリス", 30)
alice.greet  # => こんにちは、アリスです。

上記の例では、Personクラスが設計図であり、aliceがインスタンスです。initializeメソッドはインスタンス生成時に呼び出され、属性を初期化します。attr_accessorは属性への読み書きを可能にする便利なマクロです。

属性と振る舞いの設計

オブジェクト指向設計では、属性と振る舞いを適切に分離することが重要です。属性はオブジェクトの状態を保持し、振る舞いはその状態を操作するメソッドです。設計図(クラス)を作る際には、以下のポイントを意識しましょう。

  • 属性は必要最低限に抑える。外部から直接アクセスできるようにするかはケースバイケース。
  • 振る舞いは単一責任原則を守り、1つのメソッドが1つのことだけを行うようにする。
  • インターフェース(メソッドの公開範囲)を明確にし、外部に公開するメソッドと内部でのみ使用するメソッドを分ける。

例えば、BankAccountクラスを設計するときは、残高(属性)と入金・出金(振る舞い)を分離し、残高の直接変更を防ぐためにattr_readerのみを公開します。

class BankAccount
  attr_reader :balance

  def initialize(initial_balance = 0)
    @balance = initial_balance
  end

  def deposit(amount)
    @balance += amount
  end

  def withdraw(amount)
    if amount <= @balance
      @balance -= amount
    else
      puts "残高不足です。"
    end
  end
end

このように設計図をしっかりと定義し、インスタンスを生成して振る舞いを呼び出すことで、Ruby基礎から応用までスムーズに学習を進められます。

この記事はAIによって作成されました。

コメント