Android/Java
-
[Java] λμμΈ ν¨ν΄(Mediator ν¨ν΄)Android/Java 2021. 5. 18. 00:14
Mediator ν¨ν΄μ΄λ? Mediator λ§ κ·Έλλ‘ μ€μ¬μλ‘μ, ν΄λμ€κ° λ€λ₯Έ ν΄λμ€μμ μ°κ²°μ±μ μ§μ νλ κ²μ΄ μλ μ€μ¬μλ₯Ό ν΅ν΄ μ°κ²°νλ ν¨ν΄μ λλ€. νμ¬μ μκΈμκ° λΉμλ₯Ό ν΅ν΄ λ€λ₯Έ μ§μλ€μκ² μκΈμμ μ견μ λͺ¨λμκ² μ λ¬νλ―, ν΄λμ€κ° μ§μ λ°μ΄ν°λ₯Ό λͺ¨λμκ² μΌμΌμ΄ μ λ¬νλ κ²μ΄ μλ Mediatorκ° μννλλ‘ λ§λλ ν¨ν΄μ λλ€. Mediator ν¨ν΄μ μ€λͺ νκΈ° μ μ Mediator μ¬μ©νκΈ° μ μ μ½λμ λΆνΈν¨μ μ μκ³ λλ©΄ λ μ΄ν΄νκΈ° μ½μ΅λλ€. public interface Subject { void isTimetoSubject(String type); } SubjectλΌλ μΈν°νμ΄μ€λ typeμ ν΄λΉνλ κ³Όλͺ©μ λ£λ μκ°μ΄ λ§λμ§μ λ°λΌ λ€λ₯΄κ² ꡬνλλ isTimetoSubject λ©μλ..
-
[Java] λμμΈ ν¨ν΄(Template ν¨ν΄)Android/Java 2021. 5. 17. 22:13
Template ν¨ν΄μ΄λ? λνμμ΄λΌλ©΄ PPTλ‘ λ°νν κ²½νμ μμ κ²μ λλ€. PPT λ°ν μλ£λ₯Ό μ§μ κΎΈλ©°μ λ§λλ νμλ μμ μ μκ² μ§λ§, λμμΈ κ°κ°μ΄ μλ μ¬λμκ²λ μ΄λ €μΈ μ μμ΅λλ€. μ΄ λ, λλΆλΆμ PPT ν νλ¦Ώμ κ²μνμ¬ ν νλ¦Ώμ λ΄μ©λ§ μΆκ°νλ λ°©μμΌλ‘ μλ£λ₯Ό λ§λ€ κ²μ λλ€. μ΄μ²λΌ Template ν¨ν΄μ΄λ μ λ°μ μΈ κ³Όμ κ°μ ν° νλ§ μ£Όμ΄μ§κ³ , μΈλΆμ μΈ λ©μλλ€μ μνλ μ€νμΌμ λ§κ² ꡬννλ ν¨ν΄μ λλ€. μ λ°μ μΈ κ³Όμ μμ 곡ν΅λ μ μ°¨κ° μμ κ²½μ° μ¬μ©νλ©΄ ν¨κ³Όμ μΈ ν¨ν΄μ λλ€. Template μ¬μ© public abstract class Movie { protected abstract void connectMovieServer(); protected abstract void down..
-
[Java] λμμΈ ν¨ν΄(Proxy ν¨ν΄)Android/Java 2021. 5. 14. 01:28
Proxy ν¨ν΄μ΄λ? ν΄λμ€λ₯Ό μμ± μμ κ°λ²Όμ΄ μμ μ λν λ©μλλ μ€ννλ, λ¬΄κ±°μ΄ μμ μΌ κ²½μ° λ€λ₯Έ ν΄λμ€μ λ©μλλ₯Ό μ€ννλ ν¨ν΄μ λλ€, μ¦, λ리μΈ(Proxy) μν ν μ μλ ν΄λμ€κ° κ°λ²Όμ΄ μμ μ μ€ννλ€κ° μλ²μμ λ°μ΄ν°λ₯Ό λ°λλ€λκ°, λμμ μ¬μ μμλ μ£Όμ ν΄λμ€κ° μ€ννλλ‘ ν©λλ€. Proxy ν¨ν΄μ μ¬μ©ν¨μΌλ‘μ¨ λ¬΄κ±°μ΄ μμ μ ν΄μΌν κ²½μ°μλ§ ν΄λμ€λ₯Ό μμ±νμ¬ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μμ΅λλ€. Proxy ν¨ν΄ μ¬μ© public interface Scorer { void multipleChoice(); void shortAnswer(); } Scorer μΈν°νμ΄μ€λ κ°κ΄μκ³Ό μ£Όκ΄μμ μ±μ ν μ μλ μ±μ κ΄μ λ»νλ μΈν°νμ΄μ€μ λλ€. κ°κ΄μμ μλμ μΌλ‘ μ λ΅μ΄ μμΌλ©΄ μ½κ² μ±μ ν ..
-
[Java] λμμΈ ν¨ν΄(Strategy ν¨ν΄)Android/Java 2021. 5. 11. 23:31
μ΄ κΈμ "μΈνλ° Java λμμΈ ν¨ν΄" κ°μλ₯Ό λ£κ³ 곡λΆν λ΄μ©μ λ°νμΌλ‘ κΈμ μμ±νμμ΅λλ€. Strategy ν¨ν΄ ν΄λμ€ μν μ λλ ·ν νμ¬ λͺ¨λνλ μννΈμ¨μ΄λ₯Ό ꡬμΆνλ λ° λμμ μ£Όλ ν¨ν΄μΌλ‘ μ¬λ¬ κ°μ§ κΈ°λ₯λ€μ λν΄ κ΅¬μ²΄μ μΈ ν΄λμ€λ‘ ꡬννμ¬ νννλ ν¨ν΄μ λλ€. κ° κΈ°λ₯λ€μ λν΄μ If, else if, else μ κ°μ 쑰건문μΌλ‘ νλμ½λ©νμ¬ λ€λ₯΄κ² μμ±νλ©΄ κΈ°λ₯μ μΈ μΈ‘λ©΄μμλ κ°μμ§ λͺ°λΌλ κ°μ²΄μ§ν₯ μμΉμ΄ μ΄κΈλκ² λ©λλ€. μνλ λμμ΄ μμ λ ν΄λΉ κΈ°λ₯μ ꡬνν ν΄λμ€λ‘ λ°κΎΈκΈ° λλ¬Έμ μΆν μ μ§λ³΄μμ μμ μ μ©μ΄ν©λλ€. Strategy ν¨ν΄ μ¬μ© public class DeviceOS { public String type; public DeviceOS(String type) { thi..
-
[Java] λλ€μμ΄λ?Android/Java 2021. 3. 21. 23:06
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ"μμ 곡λΆν λ΄μ©μ μ 리νμμ΅λλ€. λλ€μμ΄λ? λλ€μμ΄λ ν¨μλͺ μ μ μΈνκ³ μ¬μ©νλ κ²μ΄ μλ μλ³μ μμ΄ μ€νκ°λ₯ν ν¨μμ λλ€. μ μ°¨ν νλ‘κ·Έλλ°, κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°κ³Όλ μ¬λ λ€λ₯΄κ² ν¨μμ ꡬνκ³Ό νΈμΆλ§μΌλ‘ νλ‘κ·Έλ¨μ λ§λλ λ°©μμΈ ν¨μν νλ‘κ·Έλλ°μμ μμ£Ό μ¬μ©λ©λλ€. μλ° 8λΆν° λμ μ΄ λμμΌλ©°, λλ€μμ μ΅λͺ ν¨μλ₯Ό λ§λλ κ²μΈλ° μ΅λͺ ν¨μλ μΌκΈκ°μ²΄ νΉμ§μ κ°μ§κ³ μμ΅λλ€. λλ€μ μ¬μ©λ²μ (맀κ°λ³μ, ....) -> { μ€νλ¬Έ ... } λ€μκ³Ό κ°μ΄ μ¬μ©νλ©΄ λ©λλ€. μΌκΈκ°μ²΄λ? ν¨μν νλ‘κ·Έλλ°μ 1κΈκ°μ²΄λΌλ λ§μ μμ£Ό μ¬μ©νλλ°, 1κΈκ°μ²΄κ° 무μμΈμ§ μ 리νμμ΅λλ€. Javaμ Kotlinμ λΉκ΅λ₯Ό ν΅ν΄ Kotlin ν¨μλ 1κΈ κ°μ²΄μ§λ§, Javaλ 1κΈκ°μ²΄κ° ..
-
[Java] Java Generic(μ λ€λ¦)Android/Java 2021. 3. 1. 15:43
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ"μμ 곡λΆν λ΄μ©μ μμ±νμμ΅λλ€. Genericμ΄λ? Integerν λ°°μ΄, Stringν λ°°μ΄ λ±λ± λ°°μ΄μ ν¬ν¨λλ μμμ νμ λ§λ€ μΆκ°, μμ , μ λ ¬κ³Ό κ°μ ν¨μλ₯Ό μ μνκ³ μ¬μ©νλ κ²μ λΆλͺ λΉν¨μ¨μ μΌ κ²μ λλ€. μλ°μ Genericμ λ°μ΄ν°μ νμ μ μΌλ°ννλ€λ μλ―Έλ‘ ν΄λμ€λ λ©μλ μ μ μ μΌλ°ννμ¬ μ¬μ©ν λ°μ΄ν° νμ μ μ»΄νμΌ μμ 미리 μ§μ νλ λ°©λ²μ λλ€. JDK1.5 λΆν° Genericμ μ¬μ©κ°λ₯νλ©°, μ»΄νμΌ μ νμ μ΄ μ ν΄μ§κΈ° λλ¬Έμ, ν΄λμ€λ λ©μλ λ΄λΆμ μ¬μ©λ λ°μ΄ν°μ νμ μμ μ±μ λμΌ μ μμ΅λλ€. JDK1.5 μ΄μ μλ Object νμ μ μ¬μ©νμ¬ μνλ κ°μ²΄μ νμ μΌλ‘ μΊμ€ν νμ¬ μ¬μ©ν΄μΌλ§ νκ³ , μλͺ»λ μΊμ€ν μΌλ‘ μΈν΄ λ°νμ μ€λ₯ λ°μν κ°λ₯..
-
[Java] Java IO, NIOAndroid/Java 2021. 2. 22. 14:47
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ"μμ 곡λΆν λ΄μ©μ μ 리νμ¬ μμ±νμμ΅λλ€. Java IO λͺ¨λ νλ‘κ·Έλ¨μμλ λ°μ΄ν° μ£Όκ³ λ°λ κ³Όμ μ νμ°μ μ λλ€. μ¬μ©μκ° λ§μ°μ€λ ν€λ³΄λλ₯Ό ν΅ν΄ μ§μ μ λ ₯μ νμ¬ νλ‘κ·Έλ¨μκ² μ μ‘μ νκ±°λ, νλ‘κ·Έλ¨μμ μ¬μ©μμκ² λͺ¨λν°λ νμΌ λ±μΌλ‘ 보λ΄μ΄ μΆλ ₯ν μλ μμ΅λλ€. μλ°μμλ λ°μ΄ν°λ₯Ό μ€νΈλ¦Ό(stream) ννλ‘ μ μΆλ ₯μ νκ² λ©λλ€. μ€νΈλ¦Όμ΄λ μΆλ°μ μμ λμ°©μ κΉμ§ μ°μμ μΌλ‘ νλ¬κ°λ€λ κ°λ μ λ»ν©λλ€. νλμ μ€νΈλ¦Όμ κ°μ§κ³ μ λ ₯κ³Ό μΆλ ₯μ λμμ ν μλ μμ΅λλ€. νλ‘κ·Έλ¨μ΄ μ‘μ μΈ‘μΈμ§, μμ μΈ‘μΈμ§μ λ°λΌ μ€νΈλ¦Όμ μ’ λ₯κ° κ²°μ λ©λλ€. νλ‘κ·Έλ¨μ΄ λ°μ΄ν°λ₯Ό μμ νκ² λ λλ InputStreamμ μ¬μ©νκ³ , νλ‘κ·Έλ¨μ΄ λ°μ΄ν°λ₯Ό μ‘μ ν λλ OutputStreamμ μ¬μ©..
-
[Java] Annotation, Meta dataλ?Android/Java 2021. 2. 19. 18:27
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ"λ₯Ό ν΅ν΄ 곡λΆν λ΄μ©μ μμ±νμμ΅λλ€. Annotationμ΄λ? Anntationμ JDK 1.5λΆν° λμ λ κ²μΌλ‘ μλ° μμ€ μ½λμ μΆκ°νμ¬ μ¬μ©ν μ μλ λ©νλ°μ΄ν°μ μΌμ’ μ λλ€. λλΆλΆμ΄ λ§μ΄ λ΄€μ λ§ν @Override, @Deprecated κ° Annotation μλ‘ Annotationμ ꡬνλ μ 보μ λ°λΌ μ°κ²°λλ λ°©ν₯μ΄ κ²°μ λ©λλ€. μ¦, μ 체μ μΈ μμ€μ½λμ λ‘μ§μ λ°κΎΈμ§ μμ§λ§ Annotationμ νκ²μ μ°κ²° λ°©λ²μ΄λ μμ€μ½λμ ꡬ쑰λ₯Ό λ³κ²½ν μ μμ΅λλ€. Annotationμ κΈ°λ₯μ μ νμ©νλ€λ©΄ λΉμ¦λμ€ λ‘μ§κ³Ό λ³λμ μμ€ν μ€μ μ Annotationμκ² μμν¨μΌλ‘μ¨ κ°λ°μλ€μ λ‘μ§ κ΅¬νμλ§ μ§μ€ν μ μμ΅λλ€. λ°λΌμ Annotationμ ν΅ν΄ AOP(..