[ORACLEJAVA커뮤니티 자바교육,자바디자인패턴]상속을 이용한 어댑터 패턴(Adapter Pattern By Inheritence)
[그림 : 상속을 이용한 어댑터 패턴]
이미 제공 되는것과 필요로 하는것과의 사이에서 그 사이를 메꾸어 주는것이 Adapter의 역할을 하는 것으로 Adapter 패턴은 Wrapper 패턴이라고도
한다.
Adapter 패턴은 기존의 클래스를 이용해서 필요한 클래스를 만든다. 기존의 것과 필요한 클래스가 기능이 차이가 많은 경우에는
Adapter 패턴을 이용할수 없다. 물론 기존 클래스의 소스는 필요없다.
Adapter 패턴은 기존버전과 새버전을 공존시키면서 S/W의 유지보수를 가능하게 해 준다.
Adapter 패턴에는 Class에 의한 Adapter 패턴(상속이용)과 인스턴스에 의한 Adapter 패턴(위임이용) 두가지 형태가
있다.
1. 상속을 이용한 Adapter 패턴
이 예제는 기존에 제공되는 Class의 기능(주어진 문자열을 출력)을 이용하여 양쪽으로 괄호를 붙여 출력하는 간단한
예제이다.
이미 제공되는것은 Banner Class이며 필요한것은 Print 인터페이스이고 교환장치(Adpater)는 PrintBanner
Class이다.
[그림 : 상속을 이용한 어댑터 패턴]
//Banner.java
public class Banner {
private String
str;
public Banner
(String str) {
this.str =
str;
}
public String
showString() {
return str
;
}
}
//Print.java
public interface Print {
public abstract
String printString();
}
//PrintBanner.java
public class PrintBanner extends Banner implements Print {
public
PrintBanner (String str) { super(str); }
public String
printString() {
return "(" +
showString() + ")";
}
}
//Main.java
public class Main {
public static
void main(String args[]) {
//PrintBanner p
= new PrintBanner("hello"); ?
//만약
PrintBanner의 고유의 메소드가 있다면
//이를 사용하기 위해서는
어떻게?
Print p = new
PrintBanner("hello");
System.out.println(p.printString());
}
}
오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com
평일주간(9:30~18:10) 개강
(6/09)[기업100%환급]SQL기초에서 Schema Object까지
(6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/09)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(6/16)[기업100%환급]안드로이드개발자과정
(6/16)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(6/16)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/07)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
평일야간(19:00~21:50) 개강
(6/09)웹퍼블리싱 마스터
(6/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/10)Spring3.X, MyBatis, Hibernate실무과정
(6/11)C#4.0, ADO.NET, Network 프로그래밍
(6/11)안드로이드개발자과정
(6/17)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(6/18)C#,ASP.NET마스터
(6/26)SQL초보에서실전전문가까지
주말(10:00~17:50) 개강
(6/07)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/07)C#,ASP.NET마스터
(6/14)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(6/14)안드로이드개발자과정
(6/14)개발자를위한PLSQL,SQL튜닝,힌트
(6/15)Spring3.X, MyBatis, Hibernate실무과정
(6/21)SQL초보에서 Schema Object까지
(6/28)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
주말저녁(18:30~22:20) 개강
(6/21)JAVA,Network&WEB&Framework
(6/21)SQL기초에서실무까지
www.oraclejavacommunity.com
평일주간(9:30~18:10) 개강
(6/09)[기업100%환급]SQL기초에서 Schema Object까지
(6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/09)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(6/16)[기업100%환급]안드로이드개발자과정
(6/16)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(6/16)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/07)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
평일야간(19:00~21:50) 개강
(6/09)웹퍼블리싱 마스터
(6/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/10)Spring3.X, MyBatis, Hibernate실무과정
(6/11)C#4.0, ADO.NET, Network 프로그래밍
(6/11)안드로이드개발자과정
(6/17)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(6/18)C#,ASP.NET마스터
(6/26)SQL초보에서실전전문가까지
주말(10:00~17:50) 개강
(6/07)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(6/07)C#,ASP.NET마스터
(6/14)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(6/14)안드로이드개발자과정
(6/14)개발자를위한PLSQL,SQL튜닝,힌트
(6/15)Spring3.X, MyBatis, Hibernate실무과정
(6/21)SQL초보에서 Schema Object까지
(6/28)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
주말저녁(18:30~22:20) 개강
(6/21)JAVA,Network&WEB&Framework
(6/21)SQL기초에서실무까지
댓글 없음:
댓글 쓰기