Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 집계(Aggregation)란 무엇인가? 개념과 코드 예제로 쉽게 이해하기

C#에서 집계(Aggregation)란?

집계(Aggregation)는 C#에서 객체 간의 방향성 있는 관계(directional relation)를 의미합니다. 쉽게 말해, 한 객체가 다른 객체를 포함하거나 참조하는 관계를 나타내는 것으로, 객체 지향 프로그래밍에서 매우 중요한 개념 중 하나입니다.

집계는 전체와 부분의 관계를 표현하지만, 부분이 전체에 완전히 종속되지 않는다는 특징이 있습니다. 즉, 전체 객체가 소멸되더라도 부분 객체는 독립적으로 존재할 수 있습니다.

집계의 대표적인 예: Employee와 Address

집계를 이해하기 가장 좋은 예는 직원(Employee)주소(Address)의 관계입니다.

  • 한 명의 직원은 하나의 주소와 연관됩니다.
  • 반면, 하나의 부서(Department)에는 여러 명의 직원이 속할 수 있습니다.

즉, 직원 객체가 주소 객체를 참조하는 방향성 관계가 성립하는 것입니다.

C# 집계 구현 예제

다음은 Employee 클래스 내부에 Address 객체를 필드로 포함시켜 집계 관계를 구현한 코드입니다.

public class Address {
    . . .
}

public class Employee {

    private Address addr;

    public Employee(Address addr) {
        this.addr = addr;
    }

    . . .

}

코드 설명

위 예제에서 Employee 클래스는 Address 타입의 private 필드 addr를 가지고 있습니다. 생성자를 통해 외부에서 전달받은 Address 객체를 저장함으로써, Employee 객체가 Address 객체를 참조하는 집계 관계가 형성됩니다.

이처럼 집계는 클래스 간의 느슨한 결합(loose coupling)을 유지하면서 객체 간 관계를 표현할 수 있어, 코드의 재사용성과 유지보수성을 높이는 데 큰 도움이 됩니다.