์ค๋์ ์ฃผ์์ฌํญ (6/1, ๋ชฉ์์ผ)
- ํค์ค์คํฌ ๊ตฌํ ๊ณผ์ ์ด์ด์ ํ๊ธฐ
- ๋ด์ผ(6/2) 13์ ์ ์ถ ๋ง๊ฐ
๋ฒ์จ 6์. ๊ทธ๋ฆฌ๊ณ ์บ ํ๋ฅผ ์์ํ์ง ๋ฒ์จ 3์ฃผ๊ฐ ๋๋๊ฐ๋ค. ์ง๋ ๋ฌ์ ์ด์ฌ ์ค๋น์ ๋๋ถ์์ ์ผ๋ค์ด ์ด๊ฒ์ ๊ฒ ๊ฒน์น๋ ๋ฐ๋์ ์ ๋ง ์ ์ ์์ด ์ง๋๊ฐ๋๋ฐ... ํ์ฌํผ ์ง๊ธ ๋๋์๋ณด๋ ค๋ ์ ๋ง ์๊ฐ์ด ๋ง์์ง๋ค.
ํ ์คํธ๊น์ง ์๋ฃํ ๊ฒ๋ค์ ์ฒดํฌ
โ๏ธ ๋ฉ๋ดํ ์กฐํ (๊ธฐ๋ณธ์ผ๋ก ์ ์ฅ๋ ์ ๋ณด ์กฐํ)
โ๏ธ ์ฅ๋ฐ๊ตฌ๋ ์กฐํ - ์กฐํ ํ ๊ตฌ๋งค or ๊ตฌ๋งค์ทจ์
โ๏ธ ์ฅ๋ฐ๊ตฌ๋ ์ด๊ธฐํ
โ๏ธ ๋๊ธฐ๋ฒํธ ๋ฐ๊ธ
โ๏ธ ์ฃผ๋ฌธ ์ทจ์
๐ ์ปจํธ๋กค๋ฌ (+ ๋ทฐ์ด)
โ๏ธ ์ฌ์ฉ์๊ฐ ์ ํ ๊ฐ ์ ๋ ฅ
โ๏ธ ์ ๋ ฅ ๋ฐ์ ์ ํ ๊ฐ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์
โ๏ธ ์ ์ฒด์ ์ธ ํ๋ฆ ์ ์ด (์ปจํธ๋กค๋ฌ)
๊ทธ ์ธ
โ๏ธ ์์ธ์ฒ๋ฆฌ
์ด์ ๊ตฌ์กฐ ์ค๊ณ ํด๋๊ฒ ๋์์ด ๋ง์ด๋์๋ค. ๋ฌผ๋ก ์ด๊ฑฐ๋๋ก ๋์๊ฐ๋ผ๋ ๋ฒ์ ์์ง๋ง. ์ค๋์ ์ฝ๋๋ฅผ ์ฐ๋ฉด์ ๊ฐ์ฒด๋ฅผ ์ด๋ ๊ฒ ๊ณ์ ์ ์ธ, ์ด๊ธฐํํด๋ ๋๋? ํ๋ ์๊ฐ์ด ๋ค์๋ค. ์๋ํ๋ฉด ๋ค๋ฅธ ๊ณณ์์ ๊ณ์ ์ด๊ธฐํ๋ฅผ ํด์ฃผ๋ฉด ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ๋๋๊น...
/* Main.java */
Order order = new Order();
/* Screen.java */
private Order order = new Order();
/* Kiosk.java */
private Order order = new Order();
๊ฐ์ฅ ๋ง์ด ์ ์ธ ๋ฐ ์ด๊ธฐํ๊ฐ ๋๊ณ ์๋ ๊ฑด Order
๊ฐ์ฒด์๋ค. Main
ํด๋์ค์๋ ํ
์คํธ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์์๋ค์ง๋ง, ํ์ฌํผ ํ์ฌ๋ก์ฌ ๊ทธ๋ ๋ค. ์๋ง ๋น์ฅ์ ๋์ ๋๋ ๋ฌธ์ ๊ฐ ์์ ๊ฒ ๊ฐ์ง๋ง, ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋๋๋ฌ์ง๊ฒ ๋ํ๋์ง ์์๊น?
๋ด๊ฐ ์๊ฐํด๋ณธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
static
์ผ๋ก ์ ์๋๋ 3๋ฒ์ ์ ํํด์ ์์ ํด๋ณด์๋ค.
/* Main.java */
// ๋ฉ์ธ์์ ๊ฐ์ฒด ์์ฑ ํ ์์ฑ์๋ก ์ ๋ฌ
Order order = new Order();
Screen screen = new Screen(order);
Kiosk kiosk = new Kiosk(order, screen);
/* Screen.java */
private Order order;
Screen(Order order) {
this.order = order;
}
/* Kiosk.java */
private Order order;
private Screen screen;
Kiosk(Order order, Screen screen) {
this.order = order;
this.screen = screen;
}