본문 바로가기
Delphi/문법

Interface를 활용한 의존성 주입 구조 만들기

by MonoSoft 2025. 4. 4.
728x90
반응형

Interface를 활용한 의존성 주입 구조 만들기

 

Interface를 사용하면 클래스 구현에 의존하지 않고 코드를 작성할 수 있어, 
유지보수성과 확장성이 높아집니다. 
델파이에서는 인터페이스 기반 설계를 통해 DI(Dependency Injection) 패턴을 쉽게 
구현할 수 있습니다.

type
  IPrinter = interface
    ['{3B770F50-22DA-4E69-8F28-56FA4E09B307}']
    procedure Print;
  end;

  TConsolePrinter = class(TInterfacedObject, IPrinter)
    procedure Print;
  end;

  TService = class
  private
    FPrinter: IPrinter;
  public
    constructor Create(APrinter: IPrinter);
    procedure DoWork;
  end;

procedure TConsolePrinter.Print;
begin
  Writeln('콘솔에 출력합니다.');
end;

constructor TService.Create(APrinter: IPrinter);
begin
  FPrinter := APrinter;
end;

procedure TService.DoWork;
begin
  FPrinter.Print;
end;

procedure RunDIExample;
var
  Service: TService;
begin
  Service := TService.Create(TConsolePrinter.Create);
  Service.DoWork;  // 결과: 콘솔에 출력합니다.
end;


● 인터페이스로 유연한 설계 구현 가능
● 테스트 코드 작성, Mock 객체 대체, 기능 확장 등에 유리
● TInterfacedObject로 메모리 자동 관리

728x90
반응형

댓글