Notice
Recent Posts
Recent Comments
Link
투케이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");
} // [메인 종료]
} // [클래스 종료]
[결과 출력]
반응형
'투케이2K 알고리즘' 카테고리의 다른 글
Comments