Unity - Interface

xogud·2024년 5월 28일
0

Unity

목록 보기
5/11
post-thumbnail

24/05/28

인터페이스 복습

인터페이스를 통해 클래스들은 공통적인 동작을 정의하고, 이러한 동작들을 구현하는 클래스들은 해당 인터페이스를 구현(implement)함으로써 공통 규약을 준수할 수 있습니다.

인터페이스를 설명하는 주요 특징은 다음과 같습니다.

  1. 추상화: 인터페이스는 추상적인 개념으로, 실제로 구현된 메서드가 없고, 메서드의 시그니처만을 가집니다. 따라서 인터페이스는 인스턴스화될 수 없으며, 구현체가 필요합니다.
  2. 메서드 시그니처: 인터페이스는 구현 클래스가 반드시 구현해야 하는 메서드들의 시그니처를 정의합니다. 메서드의 이름, 매개변수, 반환 타입이 포함됩니다.
  3. 다중 상속 가능: 클래스는 하나의 클래스만 상속받을 수 있지만, 여러 인터페이스를 동시에 구현할 수 있습니다. 이를 통해 다중 상속을 흉내내는 것이 가능합니다.
  4. 강제적 구현: 클래스가 인터페이스를 구현하면, 인터페이스에서 정의한 모든 메서드를 반드시 구현해야 합니다. 이로 인해 클래스는 인터페이스에 정의된 동작을 강제로 구현하게 됩니다.
  5. 인터페이스 간 확장: 인터페이스는 다른 인터페이스를 확장(extends)할 수 있습니다. 이를 통해 더 큰 범위의 공통 동작을 정의할 수 있습니다.

인터페이스를 사용하는 이유

코드는 결합도가 낮아야 한다.
결합도가 높다는 것은 클래스 간 의존도가 높다는 것 → 유연성이 떨어지게 된다.
구체적 구현 클래스가 아닌 작은 단위의 여러 인터페이스를 사용하자.

협업의 관점

  1. 개발 기간을 단축
    인터페이스라는 구현되지 않은 틀만 작성하면 구현 클래스에서 코드 작성 및 개발 가능
  2. 표준화가 가능
    여러명의 개발자가 작업해도 정형화된 작업이 가능
  3. 독립적인 프로그래밍이 가능
    선언은 인터페이스에서 구현은 클래스에서.
public interface Payment
{
	public void Pay();
}

public class Card : Payment
{
		public void Pay(){}
}

public class Cash : Payment
{
		public void Pay(){}
}

public class QR : Payment
{
		public void Pay(){}
}

(x)
public class Store
{
		Card card;
		Cash cash;
		QR qr;
}


(o)
public class Store
{
		Payment payment;
		payment.Pay();
}
profile

0개의 댓글