Home
>
CS
>
2024
>
πΎ [CS] λ
ΈμΆ λͺ¨λ ν¨ν΄(revealing module pattern)
CS
πΎ [CS] λ
ΈμΆ λͺ¨λ ν¨ν΄(revealing module pattern).
1οΈβ£ λ
ΈμΆ λͺ¨λ ν¨ν΄(revealing module pattern).
- μλ°μμ λ
ΈμΆ λͺ¨λ ν¨ν΄(revealing module patter)μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ λͺ¨λν κ°λ
μ μ¬μ©νμ¬ λ΄λΆ ꡬν μΈλΆμ¬νμ μ¨κΈ°κ³ , μΈλΆμ νμν λΆλΆλ§ λ
ΈμΆνλ λμμΈ ν¨ν΄μ
λλ€.
- μ΄ ν¨ν΄μ μ£Όλ‘ μλ°μ€ν¬λ¦½νΈμμ λ§μ΄ μ¬μ©λμ§λ§, μλ°μμλ μ μ¬ν λ°©μμΌλ‘ ꡬνν μ μμ΅λλ€.
2οΈβ£ ν΅μ¬ κ°λ
.
-
μ 보 μλ.
- λ΄λΆ λ°μ΄ν°λ λ©μλλ₯Ό μΈλΆμ λ
ΈμΆνμ§ μκ³ , κΌ νμν λΆλΆλ§ λ
ΈμΆνμ¬ κ°μ²΄μ μΊ‘μνλ₯Ό μ μ§ν©λλ€.
-
μΈλΆ λ
ΈμΆ μ μ΄.
- μΈλΆμμ μ κ·Όν μ μλ λ©μλμ λ΄λΆμ μΌλ‘λ§ μ¬μ©λλ λ©μλλ₯Ό ꡬλΆνμ¬, λ΄λΆ ꡬνμ λ³κ²½μ΄ μΈλΆ μ½λμ μν₯μ λ―ΈμΉμ§ μλλ‘ ν©λλ€.
3οΈβ£ μλ°μμμ ꡬν μμ.
public RevealingModule {
// private νλ
private String hiddenData = "This is hidden";
// μΈλΆμμ μ κ·Όν μ μλ λ©μλ
private void hiddenMethod() {
System.out.println("This method is hidden");
}
// μΈλΆμ λ
ΈμΆν λ©μλ
public void showData() {
System.out.println("Exposed Data: " + hiddenData);
}
// μΈλΆμμ μ¬μ©ν μ μλλ‘ μ¨κ²¨μ§ λ©μλλ₯Ό νΈμΆνλ λ©μλ
public void callHiddenMethod() {
hiddenMethod(); // μΈλΆμμ μ κ·Ό λΆκ°λ₯ν λ©μλλ₯Ό λ΄λΆμ μΌλ‘ νΈμΆ
}
}
μ€λͺ
.
-
-
hiddenData
μ hiddenMethod
λ μΈλΆμ λ
ΈμΆλμ§ μλ νλμ λ©μλμ
λλ€.
- μ΄λ ν΄λμ€ λ΄λΆμμλ§ μ¬μ©λλ©° μΈλΆ κ°μ²΄λ μ κ·Όν μ μμ΅λλ€.
-
-
showData
μ callHiddenMethod
λ μΈλΆμ λ
ΈμΆλλ λ©μλλ‘, μ΄ λ©μλλ₯Ό ν΅ν΄ μΈλΆμμ λ΄λΆμ μΌλΆ λ°μ΄ν°λ λ©μλμ μ κ·Όν μ μμ΅λλ€.
μ₯μ .
-
μΊ‘μν κ°ν.
- μΈλΆμμ λΆνμν λ΄λΆ ꡬ쑰μ μ κ·Όν μ μλλ‘ νμ¬ λ³΄μμ±μ λμ
λλ€.
-
μ½λ μ μ§λ³΄μμ±.
- λ΄λΆ ꡬνμ λ³κ²½νλλΌλ μΈλΆ μΈν°νμ΄μ€κ° μΌμ νλ©΄, μΈλΆ μ½λμ μν₯μ λ―ΈμΉμ§ μκ³ μ μ°νκ² μμ κ°λ₯ν©λλ€.
- μ΄ ν¨ν΄μ ν΅ν΄ μλ°μμλ λͺ¨λκ°μ λͺ
νν κ²½κ³λ₯Ό μ€μ νκ³ , μ μ§λ³΄μμ±μ λμ΄λ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.