An object graph is a conceptual representation of the relationships and connections between objects in an object-oriented system. It illustrates how objects are linked to each other through references, showing the structure and organization of the objects in memory.

Key Characteristics

Example in Ruby

Consider a simple example with classes Person and Address:

class Address
  attr_accessor :street, :city

  def initialize(street, city)
    @street = street
    @city = city
  end
end

class Person
  attr_accessor :name, :address

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

address = Address.new("123 Main St", "Springfield")
person = Person.new("John Doe", address)

Object Graph Representation

In this example, the object graph would look like this:

Person
  |
  v
Address

Person object has a reference to an Address object. The Address object contains the details of the address.

Summary

An object graph is a representation of the relationships between objects in an object-oriented system. It shows how objects are connected through references, providing a visual or conceptual map of the structure and organization of objects in memory. This helps in understanding the interactions and dependencies between different objects in the system.