All Courses
OOP: COMPOSITION AND RELATIONSHIPS

Dependency

Dependency is the weakest object relationship.

Simple idea:

One class or function temporarily uses another object.

The object is usually passed as a parameter or created locally.

Complete Example

#include <iostream>
#include <string>
using namespace std;

class Logger {
public:
    void log(const string& message) const {
        cout << "[LOG] " << message << endl;
    }
};

class OrderService {
public:
    void placeOrder(const string& itemName, const Logger& logger) const {
        cout << "Order placed for " << itemName << endl;
        logger.log("OrderService completed placeOrder");
    }
};

int main() {
    Logger logger;
    OrderService service;

    service.placeOrder("Notebook", logger);

    return 0;
}

Output:

Order placed for Notebook
[LOG] OrderService completed placeOrder

Why This Is Dependency

OrderService does not own Logger.

OrderService does not store Logger.

It only uses Logger temporarily inside one function call.

Dependency vs Association

Topic Dependency Association
Strength weakest stronger
Duration temporary use stored or longer connection
C++ form parameter or local variable member pointer/reference/object
Example service uses logger in one method doctor stores patients

Why Dependency Is Useful

Dependency keeps classes flexible:

  • You can pass different logger objects.
  • The service does not manage logger lifetime.
  • Testing becomes easier.
  • The class has fewer permanent responsibilities.

Viva Answer

Dependency is a weak relationship where one class or function temporarily uses another object, usually through a parameter or local variable. It does not imply ownership or long-term storage.

Quick Check

  1. Does dependency mean ownership?
  2. How is a dependency often passed in C++?
  3. Why is dependency weaker than association?