Encapsulate Variable, ๋ณ์ ์บก์ํํ๊ธฐ๋ฅผ ์์๋ณด์.
์์ฝ
์ฝ๋
๋ฐฐ๊ฒฝ
- ํจ์๋ ๋ฐ์ดํฐ๋ณด๋ค ๋ค๋ฃจ๊ธฐ๊ฐ ์์ํ๋ค.
- ๋ฐ๋ฉด์ ๋ฐ์ดํฐ๋ ๋ค๋ฃจ๊ธฐ๊ฐ ๊น๋ค๋กญ๋ค. ์ ํจ๋ฒ์๊ฐ ๋์ด ๊ณ ์ณ์ผํ ๊ณณ์ด ๋ง์์ง๋ค.
- ์ ๊ทผํ ์ ์๋ ๋ฒ์๊ฐ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ธธ ๋๋, ๊ทธ ๋ฐ์ดํฐ๋ก์ ์ ๊ทผ์ ๋ ์ ํ๋ ํจ์๋ก ์บก์ํํ๋ ๊ฒ์ด ์ข๋ค.
- ํด๋น ํจ์๋ฅผ ํตํด์ผ๋ง ๋ณ๊ฒฝํ๊ณ ์ฌ์ฉํ ์ ์๋ค๋ฉด, ๋ณ๊ฒฝ ์ ๊ฒ์ฆ์ด๋ ์ถ๊ฐ ๋ก์ง์ ์ฝ๊ฒ ๋ผ์๋ฃ์ ์ ์๋ค.
- ๊ฐ์ฒด ์งํฅ์์ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ํญ์
private
์ผ๋ก ์ ์งํด์ผ ํ๋ค๊ณ ๊ฐ์กฐํ๋ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ์๋ค. - ๋ฒ์๋ฅผ ์ ํํด์ผ ํ๋ค.
- ์ด๋ณด๋ค ์ข์ ๊ฒ์ ๋ถ๋ณ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ ์ฐจ
- ๋ณ์๋ก์ ์ ๊ทผ๊ณผ ๊ฐฑ์ ์ ์ ๋ดํ๋ ์บก์ํ ํจ์๋ค์ ๋ง๋ ๋ค.
- ์ ์ ๊ฒ์ฌ๋ฅผ ์ํํ๋ค.
- ๋ณ์๋ฅผ ์ง์ ์ฐธ์กฐํ๋ ๋ถ๋ถ์ ๋ชจ๋ ์ ์ ํ ์บก์ํ ํจ์ ํธ์ถ๋ก ๋ฐ๊พผ๋ค. ํ๋์ฉ ๋ฐ๊ฟ ๋๋ง๋ค ํ ์คํธํ๋ค.
- ๋ณ์์ ์ ๊ทผ ๋ฒ์๋ฅผ ์ ํํ๋ค.
- ๋ณ์๋ก์ ์ง์ ์ ๊ทผ์ ๋ง์ ์ ์์ ๋๋ ์๋ค. (์ปดํ์ผ๋ฌ ์ค๋ฅ?)
- ์ด๋ฐ ๊ฒฝ์ฐ ์ด๋ฆ์์ฒด๋ฅผ ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ฉด ์๋ฌ๊ฐ ๋จ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค.
- ํ ์คํธํ๋ค.
- ๋ณ์ ๊ฐ์ด ๋ ์ฝ๋๋ผ๋ฉด ๋ ์ฝ๋ ์บก์ํํ๊ธฐ๋ฅผ ์ ์ฉํ ์ง ๊ณ ๋ คํ๋ค.
๋ฐ๋ผํ๊ธฐ
-
์ ์ญ ๋ณ์์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์๋ ๊ฒฝ์ฐ๋ค.
-
์ฐธ์กฐํ๋ ์ฝ๋๊ฐ ์๋ค.
-
์ด๋ฒ์๋ ๊ฐฑ์ ํ๋ ์ฝ๋๋ ์๋ค.
1. ์บก์ํ๋ฅผ ์ํด ์ฝ๊ณ ์ฐ๋ ํจ์๋ฅผ ์ ์ํ์.
2. ์ฐธ์กฐํ๋ ๊ณณ์ ์ฐพ์ ๋ฐ๊พผ๋ค.
- ํ๋์ฉ ๋ฐ๊ฟ๋๋ง๋ค ํ ์คํธํ์.
3. ๋ชจ๋ ์ฐธ์กฐ๋ฅผ ์์ ํ๋ค๋ฉด ๋ณ์์ ๋ฒ์๋ฅผ ์ ํํ์.
๊ฐ ์บก์ํํ๊ธฐ
- ์์ ๋ฐฉ๋ฒ๋๋ก ํ๋ฉด ๋ณ์ ์์ฒด์ ์ ๊ทผํด์ ๊ฐ์ ๋ฐ๊พธ๊ฑฐ๋ ๋์ ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
- ํ์ง๋ง ๋ ํผ๋ฐ์ค ํ์ ์ ๊ฐ์ ๋ฐ๊พธ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ํ์๋ ์ ์ดํ ์ ์๋ค.
- ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ ํผ๋ฐ์ค ํ์ ์ ๊ฐ์ ๋ฐํํ ๋๋ ํญ์ ๋ณต์ ๋ณธ์ ๋ฐํํ๋๋ก ํ์.
- ํนํ ๋ฆฌ์คํธ์ ์ด ๊ธฐ๋ฒ์ ๋ง์ด ์ฌ์ฉํ๋ค.
- ํ์ง๋ง ๋ง์ฝ ๋๊ตฐ๊ฐ๊ฐ ์๋ณธ์ ๋ณ๊ฒฝํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
- ์ฆ,
defaultOwnerData
์ ๋ด๋ถ ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค. (firstName
) - ์ด๋ฐ ๊ฒฝ์ฐ ๋ ์ฝ๋ ์บก์ํํ๊ธฐ๋ฅผ ์ฌ์ฉํ์.
- ์ง๊ธ๊น์ง ๊ฒํฐ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์๋ค.
- ๊ทธ๋ฐ๋ฐ ์ธํฐ์์๋ ๋ณต์ ๋ณธ์ ๋ง๋ ๋ ๊ฒ์ด ์ข๋ค.
- ๋ณต์ ๊ฐ ์ฃผ๋ ์ฑ๋ฅ์ด ๊ฑฑ์ ๋ ์ ์์ผ๋, ์ํฅ์ ๋ฏธ๋ฏธํ๋ค.
- ์คํ๋ ค ์๋ณธ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์๊ธฐ๋ ๋ฌธ์ ๊ฐ ๋ ๋ง๋ค.
- ๋ค๋ง ์ง๊ธ ์์์์๋ ๋ณต์ ๋ณธ์ ๋ง๋ค ๋ depth๊ฐ 1์ธ ๊ฒฝ์ฐ๋ง ํ์ ํ๋ค. ๋ ๊น์ ๊ฒฝ์ฐ ๋ณต์กํด์ง๋ค.