자바 디자인패턴(0), 인터페이스와 델리게이트

2022. 8. 28. 19:05자바/디자인패턴

728x90
반응형

인터페이스

인터페이스는 기능에 대한 선언과 구현을 분리하는 것에 의의가 있다.

// Ainterface.java

public interface Ainterface {
	// 기능에 대한 선언
	public void funcA();
}
// AinterfaceImpl.java

public class AinterfaceImpl implements Ainterface {

	@Override
	public void funcA() {
		System.out.println("AAA");
	}
}

- 인터페이스를 사용하면 구현과 선언을 분리해 사용할 수 있다. 또한 어떤 기능을 호출하는 통로가 된다.

인터페이스에 대한 자세한 설명은 자바 인터페이스와 관련된 포스팅을 참고하면 좋을 것 같다.


델리게이트

다른 클래스에서 구현 클래스의 객체를 전달받아서 사용한다. 이는 특정 객체의 기능을 사용하기 위해 다른 객체를 호출하는 것을 의미한다. 

// AObj.java

public class AObj {
	Ainterface ainterface;
	
	// 델리게이트(위임)
	public AObj() {
		ainterface = new AinterfaceImpl();
	}
	
	public void funcAA() {
		ainterface.funcA();
		ainterface.funcA();
	}
}

 

Main

// Main.java
public class Main {
	public static void main(String[] args) {
		Ainterface ainterface = new AinterfaceImpl();
		
		// 통로
		ainterface.funcA(); // AAA 출력
		AObj aobj = new AObj();
		aobj.funcAA(); // AAA가 두번 출력
	}
}

 

728x90
반응형

'자바 > 디자인패턴' 카테고리의 다른 글

자바 디자인패턴(1), 전략 패턴(Strategy pattern)  (0) 2022.09.30