Spring Boot3 & Spring Framework 6 강의 :: Section 2. Java 인터페이스를 도입하여 느슨하게 결합된 앱 만들기

suragryen·2024년 2월 6일
0

Udemy-Spring

목록 보기
2/25

🧑🏻‍🏫GameRunner 클래스가 GamingConsole 이라는 인터페이스와 상호작용하도록 하고모든 게임 클래스가 GamingConsole 인터페이스를 도입하도록 해보자

interface 생성

public interface GamingConsole {
	void up();
	void down();
	void left();
	void right();
}

interface 적용

public class SuperContraGame implements GamingConsole{
	
	public void up() {
		System.out.println("up");
		
	}
	
	
	public void down() {
		System.out.println("Sit down");
	}
	
	public void left() {
		System.out.println("Go back");
	}
	
	public void right() {
		System.out.println("Shoot a bullet");
	}

}


public class MarioGame implements GamingConsole{

	public void up() {
		System.out.println("Jump");
		
	}
	
	
	public void down() {
		System.out.println("Go into a hole");
	}
	
	public void left() {
		System.out.println("Go back");
	}
	
	public void right() {
		System.out.println("Accelerate");
	}
	
}

main

public class AppGamingBagic {

	public static void main(String[] args) {
		
		var game = new MarioGame();
		//var game = new SuperContraGame(); 
		var gameRunner = new GameRunner(game);
			gameRunner.run();

	}

}

이렇게 인터페이스를 연결해주고 느슨한 결합을 해주면 게임 코드를 직접 고칠 필요 없이 GamingConsole 코드를 수정해주면 된다.

profile
블로그 이사중 ☃︎

0개의 댓글

관련 채용 정보