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
๋ ์ธ๋ถ์ ๋
ธ์ถ๋๋ ๋ฉ์๋๋ก, ์ด ๋ฉ์๋๋ฅผ ํตํด ์ธ๋ถ์์ ๋ด๋ถ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ ๋ฉ์๋์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ฅ์ .
-
์บก์ํ ๊ฐํ.
- ์ธ๋ถ์์ ๋ถํ์ํ ๋ด๋ถ ๊ตฌ์กฐ์ ์ ๊ทผํ ์ ์๋๋ก ํ์ฌ ๋ณด์์ฑ์ ๋์
๋๋ค.
-
์ฝ๋ ์ ์ง๋ณด์์ฑ.
- ๋ด๋ถ ๊ตฌํ์ ๋ณ๊ฒฝํ๋๋ผ๋ ์ธ๋ถ ์ธํฐํ์ด์ค๊ฐ ์ผ์ ํ๋ฉด, ์ธ๋ถ ์ฝ๋์ ์ํฅ์ ๋ฏธ์น์ง ์๊ณ ์ ์ฐํ๊ฒ ์์ ๊ฐ๋ฅํฉ๋๋ค.
- ์ด ํจํด์ ํตํด ์๋ฐ์์๋ ๋ชจ๋๊ฐ์ ๋ช
ํํ ๊ฒฝ๊ณ๋ฅผ ์ค์ ํ๊ณ , ์ ์ง๋ณด์์ฑ์ ๋์ด๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.