[MVVM] Model์์ Class๋์ Struct๋ฅผ ์ฌ์ฉํ๋ ์ด์
Swift์์ ๊ตฌ์กฐ์ฒด์ ํด๋์ค๋ ๋ ๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ฉ์๋๋ฅผ ํฌํจํ ์ ์๋ค.
Pokemon ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์์ ๊ณ์ธต ํ์ ์๋ ์ด์
1. ๋จ์ ๋ฐ์ดํฐ ๋ชจ๋ธ:
ํฌ์ผ๋ชฌ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ค. ์ฌ๋ฌ ํ์ ์ ํฌ์ผ๋ชฌ์ ํํํ๋ ๋ฐ ์์ด์ ์์์ด ํ์ํ์ง ์์.
ํฌ์ผ๋ชฌ์ ์์ฑ (ํค, ๋ชธ๋ฌด๊ฒ, ํ์ ๋ฑ)์ ๊ฐ ํฌ์ผ๋ชฌ ๊ฐ์ฒด์ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ฏ๋ก, ์์์ ํตํด ๊ณตํต ๊ธฐ๋ฅ์ ๊ณต์ ํ ํ์๊ฐ ์๋ค.
2. ๊ตฌ์ฑ(composition) ํ์ฉ:
์์ ๋์ ๊ตฌ์ฑ(composition)์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ์ ํ๋ค. ์ด๋ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ ๋ฐฉ๋ฒ.
์๋ฅผ ๋ค์ด, Pokemon ๊ตฌ์กฐ์ฒด๋ Species, TypeElement, Sprites์ ๊ฐ์ ๋ค๋ฅธ ๊ตฌ์กฐ์ฒด๋ฅผ ํฌํจํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋ค.
์ด๋ฅผ ํตํด ๊ฐ ๊ตฌ์ฑ ์์๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ๋๊ณ ์ฌ์ฌ์ฉ๋ ์ ์๋ค.
3. ๊ฐ ํ์ ์ผ๋ก ๋ถ๋ณ์ฑ ์ ์ง:
Pokemon ๊ตฌ์กฐ์ฒด์ ๊ทธ ๋ด๋ถ์ ๋ค๋ฅธ ๊ตฌ์กฐ์ฒด๋ค(TypeElement, Species, Sprites) ๋ชจ๋ ๊ฐ ํ์
์ด๋ฏ๋ก,
์ด ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์ํ๋ก ์ ์ง๋๋ค.
4. ๋จ์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ:
ํฌ์ผ๋ชฌ ๋ฐ์ดํฐ๋ ๋จ์ํ ์์ฑ๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ์์ ๊ณ์ธต ์์ด ๊ตฌ์ฑ๋ง์ผ๋ก๋ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ ์ ์๋ค.
๊ฒฐ๋ก
ํฌ์ผ๋ชฌ ๋ชจ๋ธ์์ ๋ถ๋ณ์ฑ์ด ์ค์ํ ์ด์ ๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์ ์ง, ์ค๋ ๋ ์์ ์ฑ, ์ฝ๋ ๊ฐ๋ ์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํค๊ธฐ ์ํด์์ด๋ค.
๋ํ, ํฌ์ผ๋ชฌ ๋ชจ๋ธ์ ๋จ์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ฏ๋ก ์์ ๊ณ์ธต์ด ํ์ ์๊ณ , ๊ตฌ์ฑ๋ง์ผ๋ก ์ถฉ๋ถํ ํํํ ์ ์๋ค.
๋ฐ๋ผ์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๊ตฌํํ๋ ๊ฒ์ด ์ ์ ํ๋ค๋ ๊ฒฐ๋ก .
์ง์ฐ๊ธฐ ์๊น์์ ๋จ๊ฒจ๋ ๋๋ collectionViewLayout (0) | 2024.08.05 |
---|