-
[Java] λμμΈ ν¨ν΄(Adapter ν¨ν΄)Android/Java 2021. 1. 7. 20:19λ°μν
- μ΄ κΈμ "μΈνλ° Java λμμΈ ν¨ν΄" κ°μλ₯Ό λ£κ³ 곡λΆν λ΄μ©μ λ°νμΌλ‘ μμ±ν κΈμ λλ€.
Adapter ν¨ν΄μ΄λ?
νλμ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό λ€λ₯Έ ν΄λμ€μ μΈν°νμ΄μ€λ‘ λ³νν λ μ£Όλ‘ μ°λ ν¨ν΄μ λλ€.
μ΄λ μ λ κ·λͺ¨κ° μλ λ΄λΆ μμ€ν μμ μλ‘μ΄ ν΄λμ€λ₯Ό μ μ©νλ €κ³ μΈν°νμ΄μ€λ₯Ό λͺ¨λ μμ νλ κ²μ μ¬μ€μ λΆκ°λ₯ν©λλ€. μ΄λ΄ λ κΈ°μ‘΄μ μΈν°νμ΄μ€λ₯Ό λ€λ₯Έ ν΄λμ€μ μΈν°νμ΄μ€λ‘ λ³ννμ¬ μ¬μ©ν©λλ€.
μ΄λ¦ κ·Έλλ‘ μ κΈ° μ΄λν°λΌκ³ μκ°νμ¬ λ€λ₯Έ μ κΈ°λ κΈ°κ³μ₯μΉλ₯Ό μλ‘ μ°κ²°ν΄μ μλνκ² ν΄μ£Όλ λκ΅¬μΈ κ²μ²λΌ Adapter ν¨ν΄λ λΉμ·νκ² μλν©λλ€.
μλλ‘μ΄λμμλ Adapter ν¨ν΄μ μμ£Ό μ¬μ©λκ³ μμ΅λλ€. ex) ListView, RecyclerView ..
Adapter ν¨ν΄ μ¬μ©
public interface IPhone { void printIModel(); void printIVersion(); }
public interface Galaxy { void showGModel(); void showGVersion(); }
λ€μκ³Ό κ°μ΄ IPhone μΈν°νμ΄μ€μ Galaxy μΈν°νμ΄μ€κ° μ‘΄μ¬ν©λλ€.
public class MyIPhone implements IPhone{ @Override public void printIModel() { System.out.println("IPhone 12λ₯Ό μ¬μ©ν©λλ€"); } @Override public void printIVersion() { System.out.println("IOS 14.3"); } }
public class MyGalaxy implements Galaxy { @Override public void showGModel() { System.out.println("κ°€λμ 20λ₯Ό μ¬μ©ν©λλ€"); } @Override public void showGVersion() { System.out.println("Android 11"); } }
κ° μΈν°νμ΄μ€λ₯Ό implementν MyIPhone, MyGalaxy ν΄λμ€κ° μ‘΄μ¬ν©λλ€.
κΈ°μ‘΄μ μμ€ν μΈν°νμ΄μ€κ° IPhoneμ΄λΌκ³ νκ³ μ΄ μΈν°νμ΄μ€λ₯Ό μ΄μ©ν Galaxy ν΄λμ€λ₯Ό μ¬μ©νκ³ μΆμ λ Adapter ν¨ν΄μ μ΄μ©ν΄μΌ ν©λλ€.
public class GalaxyAdapter implements IPhone { private Galaxy galaxy; public GalaxyAdapter(Galaxy galaxy) { this.galaxy = galaxy; } @Override public void printIModel() { galaxy.showGModel(); } @Override public void printIVersion() { galaxy.showGVersion(); } }
public class Main{ public static void main(String[] args){ MyIPhone iPhone = new MyIPhone(); iPhone.printIModel(); iPhone.printIVersion(); MyGalaxy gallery = new MyGalaxy(); GalaxyAdapter adapter = new GalaxyAdapter(gallery); adapter.printIModel(); adapter.printIVersion(); } }
μ€ν κ²°κ³Ό
- νΈνμ±μ΄ μλ IPhone μΈν°νμ΄μ€λ₯Ό κ°μ§κ³ MyGalaxyμ μ¬μ©νλ μΈν°νμ΄μ€λ‘ λ³ννλ κ²°κ³Όλ₯Ό νμΈν μ μμ΅λλ€.
λ°μν'Android > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] JVMμ΄λ? μλ° μ½λ μ€ν (0) 2021.01.11 [Java] λμμΈ ν¨ν΄(Decorator ν¨ν΄) (0) 2021.01.08 [Java] λμμΈ ν¨ν΄ (Singleton ν¨ν΄) (0) 2021.01.05 [Java] λμμΈ ν¨ν΄ (Factory ν¨ν΄) (0) 2021.01.05 [Java] λμμΈ ν¨ν΄ (Builder ν¨ν΄) (0) 2021.01.03