ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์์ฑ ํจํด ์ค ํ๋๋ก ๊ฐ์ฒด ์์ฑ์ ๊ณต์ฅ ํด๋์ค์๊ฒ ์์ํ๋ ํจํด์ ๋งํ๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์ง์ ์ธ๊ธํ์ฌ `new` ์ฐ์ฐ์๋ฅผ ํธ์ถํ๋ ๋์ , ๋ง๋ค๊ณ ์ ํ๋ ๊ฐ์ฒด์ ์์ฑ ์ฑ ์์ ๋งก์ ๊ณต์ฅ ํด๋์ค์๊ฒ ๊ฐ์ฒด ์์ฑ์ ๋งก๊ธด๋ค. ์ด๋ฆ ๊ทธ๋๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ณต์ฅ(Factory)๋ฅผ ๋ง๋๋ ํจํด์ด๋ผ๊ณ ํ ์ ์๋ค. ๊ณต์ฅ ํด๋์ค์์ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, (์ฌ๊ธฐ์ ์ธํฐํ์ด์ค๋ ๊ฐ์ฒด ์์ฑ์ ํ๋ ๋ฉ์๋๋ฅผ ๋ปํ๋ค. `ShapeFactory`์์๋ `createShape()` ๋ฉ์๋๊ฐ ์ธํฐํ์ด์ค๋ผ๊ณ ํ ์ ์๋ค.) ํด๋น ๋ฉ์๋๋ฅผ ํฌํจํ๋ ์ธํฐํ์ด์ค, ์ฆ ๊ณต์ฅ ํด๋์ค๋ฅผ ์์ ๋ฐ๋ ๊ณต์ฅ ์๋ธ ํด๋์ค๊ฐ ๋ง๋ค ๊ฐ์ฒด์ ์ ํ์ ๊ฒฐ์ ํ๋ค. ๊ณต์ฅ ์ธํฐํ์ด์ค: ๊ฐ์ฒด ์์ฑ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ธํฐ..