π» JAVA/λμμΈ ν¨ν΄
1. κ°λ¨ν ν©ν 리 ν¨ν΄ λ¨Όμ κ°λ¨ν ν©ν 리λ₯Ό λ§λ€μ΄λ³΄κ³ μ΄λ₯Ό μ μ§μ μΌλ‘ ν¨ν΄μ μ μ©νμ¬ μ
κ·Έλ μ΄λ νλ μμΌλ‘ μ§νν΄λ³΄κ² μ΅λλ€. λ¨Όμ μλμ λ
ΈνΈλΆμ μμ±νλ ν¨μκ° μμ΅λλ€. 맀κ°λ³μ typeμ λ°λΌμ λ
ΈνΈλΆμ μμ±νκ³ μ€λΉ, μ€μ , ν¬μ₯ν΄μ μ΅μ’
μ μΌλ‘ λ
ΈνΈλΆμ λ°ννκ² λ©λλ€. public NoteBook creatNoteBook(String type) { NoteBook noteBook; if(type.equals("Macbook")) { noteBook = new MackBook(); } else if (type.equals("LG Gram")) { noteBook = new LGGram(); } else if (type.equals("GalaxyBook")) { noteBook = new Ga..
π» JAVA/λμμΈ ν¨ν΄
컀맨λ ν¨ν΄ μ μ ) 컀맨λ ν¨ν΄μ μ΄μ©νλ©΄ μꡬμ¬νμ κ°μ²΄λ‘ μΊ‘μν ν μ μμΌλ©°, 맀κ°λ³μλ₯Ό μ¨μ μ¬λ¬κ°μ§ λ€λ₯Έ μꡬ μ¬νμ μ§μ΄ λ£μμ μλ€. λν, μμ² λ΄μμ νμ μ μ₯νκ±°λ λ‘κ·Έλ₯Ό κΈ°λ‘νμ¬, μμ
μ·¨μ κΈ°λ₯λ λ£μμ μλ€. μ»€λ§¨νΈ ν¨ν΄μ μΌλ ¨μ νλμ νΉμ 리μλ² νκ³ μ°κ²° μν΄μΌλ‘μ¨ μꡬ μ¬νμ μΊ‘μν μν¨λ€. μμ²μ νλ κ°μ²΄μ κ·Έ μμ²μ μννλ κ°μ²΄λ₯Ό λΆλ¦¬μν€κ³ μΆλ€λ©΄ 컀맨λ ν¨ν΄μ μ¬μ©νλ©΄ λλ€. 컀맨λ ν¨ν΄ : ν΄λμ€ λ€μ΄μ΄κ·Έλ¨ Remote Control μμ public class LightOnCommand implements Command { Light light; public LightOnCommand(Light light) { this.light = light; } public..
π» JAVA/λμμΈ ν¨ν΄
μΈμ€ν΄μ€ μμ±ν λ μ΄λ»κ² ν κΉ? --------> new MyClass(); λ§μ½ μμ±μκ° privateμΌλ‘ μ μΈλΌμμΌλ©΄? --------> μΈμ€ν΄μ€ μμ± λΆκ°. μμ±νκ² νλ €λ©΄?? --> μΈμ€ν΄μ€λ³μλ₯Ό staticλ³μλ‘ λ―Έλ¦¬ μ μΈν --> μμ²μ μΈμ€ν΄μ€ λ³μλ₯Ό λ§λ€μ΄μ λ겨주λ μμΌλ‘ μμ±ν΄μ€λ€. public class Singleton{ private static Singleton uniqueInstance; private Singleton() { } // privateλ‘ μ μΈλ μμ±μ public static Singleton getInstance() { //μΈμ€ν΄μ€ μμ±νλ λ©μλ if (uniqueInstance == null) { //μΈμ€ν΄μ€κ° μμ±λ μ μ΄ μλμ§ νμΈν uniqueInsta..
π» JAVA/λμμΈ ν¨ν΄
"new" λ ꡬμ κ°μ²΄λ₯Ό λ»νλ€. μμμ λ°°μ΄ κ² μ²λΌ ꡬμν΄λμ€λ₯Ό λ°νμΌλ‘ μ½λ©νλ©΄ λμ€μ μ½λλ₯Ό μμ ν΄μΌ ν κ°λ₯μ±μ΄ λμμ§κ³ , μ μ°μ±μ΄ λ¨μ΄μ§κ² λλ€. Duck duck; if( picnic) { duck = new MallardDuck(); } else if( hunting ){ duck = new DecoyDuck(); } else if ( inBathTub){ duck = new RubberDuck(); } μ΄λ° μ½λλ λκ°λ₯Ό λ°μνκ±°λ, νμ₯ν΄μΌ ν λ μ½λλ₯Ό λ€μ νμΈνκ³ μΆκ° λλ μ κ±° ν΄μΌ νλ€λ κ²μ λ»νλ€. λ°λΌμ μ΄λ° μ½λλ κ΄λ¦¬ λ° κ°±μ μ΄ νλ€μ΄μ§κ³ μ€λ₯κ° μκΈΈ κ°λ₯μ±μ΄ ν¬λ€. μ ν리μΌμ΄μ
μμ ꡬμν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ§λλ λΆλΆμ μμ λ€λ₯Έμͺ½μΌλ‘ λΆλ¦¬ μμΌμΌ νλ€. μμμ λ°°μ λ..
π» JAVA/λμμΈ ν¨ν΄
μ»€νΌ μ λ¬Έμ μ μκ°ν΄λ³΄μ. κ°μ²΄ λ§μμ μ€νλ²μ¦λΌλ 컀νΌμμ΄ μλ€. 컀νΌμ μ’
λ₯λ μ¬λ¬κ°μ§μ μΆκ°ν μ μλ λ©λ΄κ° μμκ°μ§κ° λ μλ μλ€. λ€μ κ·Έλ¦Όμ 보μ. μ΄λ κ² ν΄λμ€ κ°μκ° μμ²λκ² λμ΄λλ€. μ»€νΌ λ©λ΄κ° λ λμ΄λλ©΄ ν¨μ¬ λ λμ΄λ κ²μ΄λ€. μμμ΄ κ°λ ₯νκΈ΄ νμ§λ§, λͺ¨λ μλΈ ν΄λμ€μμλ λκ°μ νλμ μμλ°κ² λλ€. μ΄λ΄λ, ꡬμ±μ ν΅ν΄μ νλμ νμ₯νκ² λλ©΄ μ€νμ€μ λμ μΌλ‘ νλμ μ€μ ν μμλ€. (μ€νΈλ ν°μ§ ν¨ν΄) λμμΈ μμΉ ) ν΄λμ€λ νμ₯μ λν΄μλ μ΄λ €μμ΄μΌ νμ§λ§, μ½λ λ³κ²½μ λν΄μλ λ«ν μμ΄μΌ νλ€. O.C.P ( Open-Closed Principle) *무쑰건 OCPλ₯Ό μ μ©νλ κ²μ μκ° λλΉκ° λ μλ μλ€. μ½λλ₯Ό νμ₯ν΄μΌ ν λΆλΆμ μ νν λλ μΈμ¬ν μ£Όμλ₯Ό κΈ°μΈμ¬μΌ ..
π» JAVA/λμμΈ ν¨ν΄
* μ΅μ λ² ν¨ν΄μ μ½κ² λ§ν΄μ, μ λ¬Έμ¬ κ΅¬λ
λ©μ»€λμ¦κ³Ό κ°λ€κ³ ν μ μλ€. μΆνμ¬λ₯Ό μ£Όμ (Subject) , ꡬλ
μλ₯Ό μ΅μ λ²(Observer) λΌκ³ μ ν΄λ³΄μ. μ΅μ λ²λ λ±λ‘(register) , μ κ±°(remove) κ° μμ λ‘λ€. μ΅μ λ² ν¨ν΄ μ μ ) ν κ°μ²΄μ μνκ° λ°λλ©΄ κ·Έ κ°μ²΄μ μμ‘΄νλ λ€λ₯Έ κ°μ²΄λ€νν
μ°λ½μ΄ κ°κ³ , μλμΌλ‘ λ΄μ©μ΄ κ°±μ λλ λ°©μμΌλ‘ μΌλλ€ μμ‘΄μ±μ μ μνλ€. μ΅μ λ²μ λν λͺ¨λ μ μ΄ ( λ±λ‘(register) , μ κ±°(remove) , μλ¦Ό(notify) ) λ Subjectμμ κ΄λ¦¬νλ€. λμμΈ μμΉ ) μλ‘ μνΈμμ©μ νλ κ°μ²΄ μ¬μ΄μμλ κ°λ₯νλ©΄ *λμ¨νκ² κ²°ν©νλ λμμΈμ μ¬μ©ν΄μΌνλ€. * λ³κ²½μ¬νμ΄ μ겨λ μ½κ² μ²λ¦¬λ₯Ό ν μκ° μλ€. κ°μ²΄ μ¬μ΄μ μνΈμμ‘΄μ±μ μ΅μν ν μ ..