Introduce Parameter Object, ๋งค๊ฐ๋ณ์ ๊ฐ์ฒด ๋ง๋ค๊ธฐ์ ๋ํด ์์๋ณด์.
์์ฝ
์ฝ๋
๋ฐฐ๊ฒฝ
- ๋ฐ์ดํฐ ํญ๋ชฉ ์ฌ๋ฌ๊ฐ๊ฐ ํจ๊ป ๋ชฐ๋ ค๋ค๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
- ์ด๋ฐ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ๋๋ก ๋ฌถ์ด์ฃผ์.
- ๋งค๊ฐ๋ณ์ ์๊ฐ ์ค์ด๋ค๊ณ , ์ผ๊ด์ฑ๋ ๋์์ง๋ค.
- ํ์ง๋ง ๊ฐ์ฅ ๊ทผ๋ณธ์ ์ธ ๊ฒ์ ์ฝ๋๊ฐ ๋ ๊ทผ๋ณธ์ ์ผ๋ก ๋ฐ๋๋ค๋ ์ ์ ์๋ค.
์ ์ฐจ
- ์ ๋นํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์๋ค๋ฉด ์๋ก ๋ง๋ ๋ค.
- Value Object๋ก ๋ง๋ค์.
- ํ
์คํธํ๋ค.
- ํจ์ ์ ์ธ ๋ฐ๊พธ๊ธฐ๋ก ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ถ๊ฐํ๋ค.
- ํ
์คํธํ๋ค.
- ํจ์ ํธ์ถ ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ธ์คํด์ค๋ฅผ ๋๊ธฐ๋๋ก ์์ ํ๋ค. ๋ฐ๊ฟ๋ ๋ง๋ค ํ
์คํธ
- ๊ธฐ์กด ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์์๋ฅผ ์ฌ์ฉํ๋๋ก ๋ฐ๊พผ๋ค.
- ๋ค ๋ฐ๊ฟจ๋ค๋ฉด ๊ธฐ์กด ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ฑฐํ๊ณ ํ
์คํธํ๋ค.
์์
- operatingPlan์ ์๋ ๋ฒ์ ๊ฐ์ ๊ฐ์ ธ์ ์ ๋ฌํ๊ณ ์๋ค.
- ์ด๋ ๊ฒ ๋ฒ์๋ผ๋ ๊ฐ๋
์ ๊ฐ์ฒด ํ๋๋ก ๋ฌถ์ด ํํํ๋๊ฒ ๋ซ๋ค.
- ๊ฐ ๊ฐ์ฒด๋ก ๋ง๋ค๋ ค ํ์ผ๋, ์ด ๊ฒฝ์ฐ๋ ๋์๊น์ง ํฌํจํ๋ ๊ฒ์ด ๋์ class๋ก ๋ง๋ค์๋ค.
- ๋ค๋ง ๊ฐ ์์ ์์ฒด๋ ์์ ์์ ์ด๋ฏ๋ก setter๋ ๋ง๋ค์ง ์์๋ค.
- ์ผ๋จ ์๋ก ๋ง๋ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ถ๊ฐํ์.
- ํ
์คํธ ํ๋ค.
- ํจ์ ํธ์ถ ์ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ธ์คํด์ค๋ฅผ ๋๊ธฐ๋๋ก ์์ ํ๋ค.
- ๋์์ ์๋ฐ๊ฟจ์ผ๋ ์ ๋ ๊ฒ์ด๋ค.
- ํ
์คํธ.
- max๋ถํฐ ๋์ฒดํด๋ณด์.
์ง์ ํ ๊ฐ ๊ฐ์ฒด๋ก ๊ฑฐ๋ญ๋๊ธฐ
- ๊ฐ ๊ฐ์ฒด๋ก ๋ฐ๊พธ๋ ์์
์์ฒด๋ ๊ฐ์ง ์์
์ ์ค๋น๋จ๊ณ๋ค.
- ์ด๋ ๊ฒ ๋๋ฉด ๊ฐ ๊ฐ์ฒด๋ก ๋ง๋ ๊ฐ์ฒด์ ๊ด๋ จ ๋์์ ์ด ํด๋์ค๋ก ์ฎ๊ธธ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ์จ๋๊ฐ ํ์ฉ ๋ฒ์ ๋ด์ธ์ง ๊ฒ์ฌํ๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ ์ ์๊ฒ ๋ค.
- ์ด๋ ๊ฒ ํ๋ฉด ๋ฒ์๋ฅผ ๊ฒ์ฌํ๋ ์ฝ๋๋ฅผ ํ ๊ณณ์ผ๋ก ๋ชจ์ ์ ์๋ค.
Reference