728x90
β» Java μΈμ΄λ‘ λ°°μ°λ λμμΈ ν¨ν΄ μ λ¬Έ(μμ§λ·μ»΄) λμλ₯Ό λ°νμΌλ‘ μμ±λ λ΄μ©μ λλ€.
Adapter(μ΄λν°) ν¨ν΄ μκ°
- μ§λ₯ 12λ³ΌνΈλ‘ μλνλ λ ΈνΈλΆμ κ΅λ₯ 100λ³ΌνΈμ ACμ μμ μ°κ²°ν λ μ¬μ©νλ AC μ΄λν°μ κ°μ κΈ°λ₯
- ν΄λΌμ΄μΈνΈκ° μ¬μ©νλ μΈν°νμ΄μ€κ° μ μλμ΄ μλλ° κΈ°μ‘΄μ μ½λ(ν΄λμ€)κ° λΉμ·ν κΈ°λ₯μ νμ§λ§ μΈν°νμ΄μ€μ λ΄μ©μ΄ λ€λ₯Ό λ κΈ°μ‘΄ μ½λλ₯Ό μ μλ μΈν°νμ΄μ€μ ꡬνμ²΄λ‘ λ°κΏμ£Όλ ν¨ν΄
- Adapterλ ν λ² ν¬μ₯ν΄μ λ€λ₯Έ μ©λλ‘ μ¬μ©ν μ μκ² κ΅νν΄μ£Όλ μν
- λ κ°μ§ μ’
λ₯λ‘ κ΅¬ν
- ν΄λμ€μ μν Adapter ν¨ν΄ (μμμ μ¬μ©ν Adapter ν¨ν΄)
- μΈμ€ν΄μ€μ μν Adapter ν¨ν΄ (μμμ μ¬μ©ν Adapter ν¨ν΄)
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
μμ νλ‘κ·Έλ¨ - JAVA
- Banner(μ΄λ―Έ μ£Όμ΄μ§ μ½λ)λ₯Ό Print(μλ‘μ΄ μΈν°νμ΄μ€)μ λ§μΆμ΄ κ°μ‘°
- Banner ν΄λμ€ (Banner.java)
- Adaptee(κ°μ‘°λλ μͺ½) μν
public class Banner {
private String string;
public Banner(String string) {
this.string = string;
}
public void showWithParen() {
System.out.println("(" + string + ")");
}
public void showWithAster() {
System.out.println("*" + string + "*");
}
}
- Print μΈν°νμ΄μ€ (Print.java)
- Target(λμ) μν
// μμμ μ¬μ©ν Adapter ν¨ν΄
public interface Print {
public abstract void printWeak();
public abstract void printStrong();
}
// μμμ μ¬μ©ν Adapter ν¨ν΄
public abstract class Print {
public abstract void printWeak();
public abstract void printStrong();
}
- PrintBanner ν΄λμ€ (PrintBanner.java)
- Adapter μν
// μμμ μ¬μ©ν Adapter ν¨ν΄
public class PrintBanner extends Banner implements Print {
public PrintBanner(String string) {
super(string);
}
public void printWeak() {
showWithParen();
}
public void printStrong() {
showWithAster();
}
}
// μμμ μ¬μ©ν Adapter ν¨ν΄
public class PrintBanner extends Print {
private Banner banner;
public PrintBanner(String string) {
this.banner = new Banner(string);
}
public void printWeak() {
banner.showWithParen();
}
public void printStrong() {
banner.showWithAster();
}
}
- Main ν΄λμ€ (Main.java)
- Client(μλ’°μ) μν
public class Main {
public static void main(String[] args) {
Print p = new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
μ₯μ κ³Ό λ¨μ
μ₯μ
- κΈ°μ‘΄ μ½λλ₯Ό λ³κ²½νμ§ μλλ€. (μ¦, μ΄λ―Έ κ²μ¦λμ΄ μλ κΈ°μ‘΄ μ½λ μ¬μ¬μ© κ°λ₯)
- κΈ°μ‘΄ μ½λμ λμκ³Ό νΉμ μΈν°νμ΄μ€ ꡬνμ²΄λ‘ λ³ννλ μμ μ μλ‘ λ€λ₯Έ ν΄λμ€λ‘ λΆλ¦¬νμ¬ κ΄λ¦¬ κ°λ₯
λ¨μ
- λ³νμ μν μλ‘μ΄ ν΄λμ€(ex. PrintBanner)λ₯Ό μ μν΄μΌ νλ―λ‘ λ³΅μ‘μ±μ΄ μ¦κ°
728x90