μ΄λν° ν¨ν΄
μλ°μ λ°μ΄ν°λ² μ΄μ€ μμ€ν
κ³Ό κ°μ΄, μ¬μ©μκ° κ΅¬μ²΄μ μΈ λ΄λΆ ꡬ쑰λ₯Ό λͺ°λΌλ 곡ν΅μ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ‘°μν μ μλ κ²λ€μ΄ μλ€.
μ΄λ¬ν κ²λ€μ κ°λ₯νκ² νλ κ²μ΄ μ±κΈν΄ ν¨ν΄(Singleton pattern)
μΈλ°, λ³νκΈ°λΌλ λ»μ κ°μ§ μ΄λν°μ λ»μ λ§κ², νΈμΆνλ μͺ½μ λ§κ² μ€κ°μ λ³νμ ν΄μ£Όλ ν¨ν΄μ΄λ€.
μμ
ν¨ν΄μ΄ μ μ© μλ ν΄λμ€
μλμ λ ν΄λΌμ€κ° μλ€κ³ νμ.
public class ClassA {
void runClassA() {
System.out.println("ClassAμ λ©μλκ° μ€ν");
}
}
public class ClassB {
void runClassB() {
System.out.println("ClassBμ λ©μλκ° μ€ν");
}
}
μ¬μ©μμ μ
μ₯μμ classAμ classBμ λ©μλλ₯Ό μ¬μ©νκΈ° μν΄μ , μΌμΌμ΄ λ€λ₯Έ λ©μλλͺ
μΌλ‘ νΈμΆν΄μΌ νλ€.
public class ClassTest {
public static void main(String[] args) {
ClassA classA = new ClassA();
ClassB classB = new ClassB();
classA.runClassA();
classB.runClassB();
}
}
μ€νκ²°κ³Ό
ClassAμ λ©μλκ° μ€ν
ClassBμ λ©μλκ° μ€ν
μ΄λ κ² νλ©΄ μνλ μ€ν κ²°κ³Όκ° λμ€μ§λ§ λ 볡μ‘ν΄μ§λ μ€μ κ°λ°μμ,
μΌμΌμ΄ runClassA, runClassB, ... κ° μλλΌ runClassλ‘ λ©μλλ₯Ό νΈμΆνλ κ²μ ν΅μΌνκ³ μΆμ λ, μ΄λν° ν¨ν΄μ μ¬μ©νλ©΄ λλ€.
ν¨ν΄μ΄ μ μ© λ ν΄λμ€
public class ClassA {
void runClassA() {
System.out.println("ClassAμ λ©μλκ° μ€ν");
}
}
class AdapterClassA{
ClassA classA = new ClassA();
void runClass() {
classA.runClassA();
}
}
public class ClassB {
void runClassB() {
System.out.println("ClassBμ λ©μλκ° μ€ν");
}
}
class AdapterClassB{
ClassB classB = new ClassB();
void runClass() {
classB.runClassB();
}
}
ν΄λΉ ν΄λμ€ λ°μ, μ΄λν° ν΄λμ€λ₯Ό λ§λ€μ΄ 쀬λ€.
public class ClassTest {
public static void main(String[] args) {
AdapterClassA adapterClassA = new AdapterClassA();
AdapterClassB adapterClassB = new AdapterClassB();
adapterClassA.runClass();
adapterClassB.runClass();
}
}
μ€νκ²°κ³Ό
ClassAμ λ©μλκ° μ€ν
ClassBμ λ©μλκ° μ€ν
λ©μλ λͺ
μ΄ runClass
λ‘ ν΅μΌλμκ³ , μ€ν κ²°κ³Όλ λμΌνλ€.
μ΄μ κ°μ΄ νΈμΆνλ μͺ½μ νμμ λ§κ² μ€κ°μμ λ³νκΈ°λ₯Ό μ 곡νλ κ²μ΄ μ΄λν° ν¨ν΄μ΄λ€.
'Java > Java μ΄λ‘ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
OCPμ DIP (0) | 2022.03.12 |
---|---|
Javaλ‘ GUI νμκ΄λ¦¬ λ§λ€κΈ°(Swing) (0) | 2022.03.11 |
Builder ν¨ν΄ (Java) (0) | 2022.03.08 |
μ±κΈν΄ ν¨ν΄ (Singleton pattern) (0) | 2022.03.07 |
μλ° νλ‘κ·Έλ¨ κ΅¬λ(JVM,JRE,JDK) (0) | 2022.03.06 |