더북(TheBook)

45.2 인터페이스 형식 개체에 인스턴스 담기

인터페이스를 만들고 이를 특정 클래스에 상속하면 해당 클래스는 반드시 부모 인터페이스에서 정의된 메서드의 실제 코드를 작성해야 합니다. 이러한 클래스는 부모 인터페이스 또는 자신의 클래스 이름으로 개체를 만들어 사용할 수 있습니다. 다음 코드를 살펴보세요.

인터페이스 형식 개체에 인스턴스 담기: InterfacePractice.cs

using System;

//① 멤버 하나를 갖는 인터페이스 정의
public interface IRepository
{
    void Get();
}

//② 인터페이스를 상속하는 클래스 구현
public class Repository : IRepository
{
    public void Get()
    {
        Console.WriteLine("Get() 메서드를 구현해야 합니다.");
    }
}

class InterfacePractice
{
    static void Main()
    {
        //ⓐ 인터페이스 형식 개체에 인스턴스 담기
        IRepository repository = new Repository();
        repository.Get();
    }
}

실행 결과

Get() 메서드를 구현해야 합니다.

에서 인터페이스를 하나 만들고, 이를 ②에서 상속하여 실제 구현체를 만듭니다. 이렇게 작성한 코드는 ⓐ처럼 인터페이스 또는 클래스 이름으로 개체를 만들고 인스턴스 코드를 담아 사용할 수 있습니다. 이러한 코드 모양은 리포지토리(repository) 패턴 이름으로 자주 사용됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.