투케이2K

43. (TWOK/ALGORITHM) [Java] 패턴 - 어댑터 (adapter) 패턴 사용해 서로 다른 인터페이스 연결 수행 실시 본문

투케이2K 알고리즘

43. (TWOK/ALGORITHM) [Java] 패턴 - 어댑터 (adapter) 패턴 사용해 서로 다른 인터페이스 연결 수행 실시

투케이2K 2022. 7. 14. 13:41

[환경 설정 및 설명]

언 어 : Java

설 명 : 패턴 - 어댑터 (adapter) 패턴 사용해 서로 다른 인터페이스 연결 수행 실시

 

[소스 코드]

package ex6;


// [인터페이스 정의 실시]
interface SoundPlayer{
	void play(String fileName);
}
interface VideoPlayer{
	void play(String fileName);
}





// [클래스 정의 실시]
class MP3 implements SoundPlayer{ // [사운드 재생 처리]

	// [메소드 재정의]
	@Override
	public void play(String fileName) {
		// TODO Auto-generated method stub
		System.out.println("");
		System.out.println("================================");
		System.out.println("[MP3] : [SoundPlay] : " + fileName);
		System.out.println("================================");
		System.out.println("");
	}
}
class MP4 implements VideoPlayer{ // [영상 재생 처리]

	// [메소드 재정의]
	@Override
	public void play(String fileName) {
		// TODO Auto-generated method stub
		System.out.println("");
		System.out.println("================================");
		System.out.println("[MP4] : [VideoPlay] : " + fileName);
		System.out.println("================================");
		System.out.println("");
	}
}





// [어댑터 변환 클래스 정의 실시]
class VideoAdapter implements SoundPlayer{ 
	
	// [전역 변수 선언]
	private VideoPlayer video;
	
	
	// [클래스 생성자 초기화 실시]
	public VideoAdapter(VideoPlayer video){
		this.video = video;
	}
	

	// [메소드 재정의]
	@Override
	public void play(String fileName) {
		// TODO Auto-generated method stub
		System.out.println("");
		System.out.println("================================");
		System.out.println("[FormatAdater] : [SoundPlay] : [Format] : [MP3 >> MP4]");
		System.out.println("FileName : "+String.valueOf(fileName));
		System.out.println("================================");
		System.out.println("");
		
		// [비디오 변환 호출 실시]
		this.video.play(fileName);
	}
}





// [메인 클래스 정의 실시]
public class MainActivity17 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("");
		System.out.println("================================");
		System.out.println("[Program Start]");
		System.out.println("================================");
		System.out.println("");
		
		
		/**
		 * [요약 설명]
		 * 1. 어댑터 패턴은 다른 인터페이스로 변환하는 패턴입니다
		 * 2. 어댑터 패턴은 서로 호환성이 없는 다른 인터페이스를 변환 수행해줍니다
		 * 3. 예시 : mp3 음악 파일을 >> mp4 비디오로 변환 출력 실시 (영상 없이 소리만 나옴)
		 * */
		
		
		// [일반 MP3 소리 재생 실시]
		MP3 mp3 = new MP3();
		mp3.play("sound.mp3");
		
		
		// [일반 MP4 비디오 재생 실시]
		MP4 mp4 = new MP4();
		mp4.play("video.mp4");
		
		
		// [어댑터 변환 : MP3 파일을 비디오로 변환 출력 실시]
		VideoAdapter format = new VideoAdapter(new MP4());
		format.play("format.mp3");

		
	} // [메인 종료]

} // [클래스 종료]
 

[결과 출력]

 

 

반응형
Comments