GoF์ ๋์์ธ ํจํด, ๋ฐ๋ณต์ ํจํด์ ๋ํด ์์๋ณธ๋ค.
ํด๋น ๊ธ์, ๋ค์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
ํต์ฌ ์์ฝ
- ๋์ผํ ํจํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ํํ๊ธฐ ์ํ ํจํด
- ์ฆ, Container/Aggregator ๋ผ ๋ถ๋ฆฌ๋ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์ํ
- Array, Linked List, Tree, Graph, Table(DBMS)
- ๊ฐ ์๋ฃ๊ตฌ์กฐ๋ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ด ๋ฌ๋ผ์ง (๊ตฌํ ๋ฐฉ์์ด ๋ค๋ฅด๋)
- ์ด๋ฅผ ํ๋์ ํจํด์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํ ๊ฒ
์์
Code
main
Object
Aggregator
Iterator
Loggable
Item
Array
ArrayIterator
ํ์ฉ์ฑ
- ๊ฐ์ฒด ๋ด๋ถ ํํ ๋ฐฉ์์ ๋ชจ๋ฅด๊ณ ๋ ์งํฉ ๊ฐ์ฒด์ ๊ฐ ์์๋ค์ ์ ๊ทผํ๊ณ ์ถ์ ๋
- ์งํฉ ๊ฐ์ฒด๋ฅผ ์ํํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ง์ํ๊ณ ์ถ์ ๋
- ์๋ก ๋ค๋ฅธ ์งํฉ ๊ฐ์ฒด ๊ตฌ์กฐ์ ๋ํด์๋ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ์ํํ๊ณ ์ถ์ ๋
๊ฒฐ๊ณผ
- ์งํฉ ๊ฐ์ฒด์ ๋ค์ํ ์ํ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
- ๋ค์ํ Iterator๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
- Aggregater์ ์ธํฐํ์ด์ค๋ฅผ ๋จ์ํํ ์ ์๋ค.
์๊ฐํด๋ณผ ์
- ๋ฐฐ์ด, ๋งํฌ๋๋ฆฌ์คํธ, ํธ๋ฆฌ๋ค๊ณผ ๊ฐ์ ๋ค์ํ ํํ์ ์ปจํ
์ด๋์ ๋ํด
- ํ์คํ๋ ๊ณตํต API๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ ์ ์ด ํต์ฌ
- ํ๊ฐ์ API๋ง์ผ๋ก๋ ๋ค์ํ ํํ์ ์ปจํ
์ด๋ ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค.
Reference