์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- URN
- tcp
- Kotlin
- Python
- fontstyle
- Dialog
- uri
- ๊ธฐ์ด100์
- AndroidStudio
- ํ๋ IT&E
- IOC
- menutab
- ์ฑ์ฉํ์ ํ
- OpenAPI
- 2024-08-20
- OOP
- udp
- FACTORY
- 2024-08-21
- di
- ์ฝ๋์
- url
- http method
- Android Studio
- ์ด๋ ธํ ์ด์
- Factory Method Pattern
- reflection
- datepicker
- swagger
๋ชฉ๋ก๐ฐJAVA/Design Pattern (4)
dingdong coding
ํ์์ฑ ๋จผ์ Strategy Pattern์ ์ ์ฌ์ฉํด์ผํ๋์ง์ ๋ํด ์๋ฅผ ๋ค์ด ์์๋ณด๊ฒ ์ต๋๋ค. ๋ก๋ด(Robot) ์ค๊ณ๋์ ๋ฐ๋ผ ์ํฐ(Atom)๊ณผ ํ๊ถ๋ธ์ด(TaekwonV)๋ฅผ ๋ง๋ค์์ต๋๋ค. ํ๊ถ๋ธ์ด์ ์ํฐ์ ๊ณตํต์ ์ผ๋ก ๊ณต๊ฒฉ๊ณผ ์ด๋ ๊ธฐ๋ฅ์ด ์์ง๋ง ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ก๋ด ํด๋์ค์์ attack์ move๋ฉ์๋๋ฅผ ์ถ์๋ฉ์๋๋ก ์ค์ ํด ์์ ํด๋์ค์์ ์ ์ํ๋๋ก ํ์ต๋๋ค. ๊ณต๊ฒฉ ์ด๋ ํ๊ถ๋ธ์ด ๋ฏธ์ฌ์ผ ๊ณต๊ฒฉ ๊ฑท๊ธฐ ์ํฐ ์ฃผ๋จน ๊ณต๊ฒฉ ํ๋ ๋ ์๋ค๋๊ธฐ ๊ทธ๋ฌ๋ค ํ๋๋ก ๋ ์๋ค๋๋ ์ํฐ์ด ๊ฐ์๊ธฐ ๊ฑท๊ธฐ๋ง ๊ฐ๋ฅํ๋ค๊ณ ํฉ๋๋ค. ์ํฐ์ move() ๋ฉ์๋๋ฅผ ์์ ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํฉ๋๋ค. ์ง์ move( )๋ฉ์๋๋ฅผ ์์ ํ๋ ์์ ์ OCP (Open/Close Principle)์ ์๋ฐฐ๋๋ ์์ ๋๋ค. ..
ํ์์ฑ ๋จผ์ Factory Method Pattern ํจํด์ ์ ์ฌ์ฉํด์ผํ๋์ง์ ๋ํด ์์๋ด ์๋ค. ํ๋ก๊ทธ๋จ์ด ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ํฉ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ํ ๊ธฐ๋ฅ์ ๊ตฌํ์ ๊ฐ๋ณ ํด๋์ค๋ฅผ ํตํด ์ ๊ณตํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค. ๋๋ฌธ์ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝ์ด๋ ์ํฉ์ ๋ฐ๋ฅธ ๊ธฐ๋ฅ ์ ํ์ ํด๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฝ๋์ ๋ณ๊ฒฝ์ ์ด๋ํฉ๋๋ค. ๋ํ ์ ์ ํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฝ๋๋ ์์ฃผ ์ค๋ณต๋ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฝ๋๋ฅผ ์ถ์ํํด ํ ๊ณณ์์ ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋ณํ๊ฐ ๋ฐ์ ํ์ ์ ํด๋น ํด๋ผ์ด์ธํธ์ ์ฝ๋๋ฅผ ์ ๋ถ ์์ ํด์ฃผ์ด์ผํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ณต์ฅ์ด ํ์ํ ๊น์? Factory Pattern Factory์ ๋ป์ ๊ณต์ฅ์ผ๋ก ์ฌ๊ธฐ์๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ณต์ฅ(๋ชจ๋)์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ..
ํ์์ฑ ๋จผ์ Singleton ํจํด์ ์ ์ฌ์ฉํด์ผํ๋์ง์ ๋ํด ์์๋ด ์๋ค. ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํ ๋ช ์ ์ ์ ๊ฐ ์๋ ์ฌ๋ฌ ์ ์ ๊ฐ ์ด์ฉํ๋ฉฐ ๊ฐ์ ์๋น์ค๋ฅผ ๋์ ๋ค๋ฐ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ฑ๊ธํค ํจํด์ ์ ์ฉํ์ง ์์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ฉด ์์ฒญ์ ๋ฐ์ ๋ ๋ง๋ค ์์ฒญ ๋ฐ์ ์๋น์ค์ ๋ํ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์๋ฉธ์ํค๋ ๊ณผ์ ์ ๋ฌด์ํ ๋ฐ๋ณตํ ๊ฒ์ ๋๋ค. ์ด ๊ณผ์ ์์ ์ฌํ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฉฐ ์ด์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์ฑ๊ธํค ํจํด์ ์ฌ์ฉํฉ๋๋ค. Singleton Pattern • ๊ฐ์ฒด(์ธ์คํด์ค)๊ฐ ์ค์ง 1๊ฐ๋ง ์กด์ฌํด์ผํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค. • ๊ฐ์ฒด๊ฐ ํ์ฌ JVM์์ ํ๋๋ง ์์ด์ผํ๋ ํจํด • private ์์ฑ์ ์ธ๋ถ์์ new ํค์๋๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ 2๊ฐ ์ด์ ์์ฑํ์ง ๋ชปํ๋๋ก ๋ง์ต๋๋ค. ..
๊ฐ์ฒด Object = ๋ฌผ์ฒด, ์์ฑ(property)๊ณผ ํ๋(method)๋ฅผ ๊ฐ๊ณ ์๋ ํ์ค์ธ๊ณ์ ์ฌ๋ฌผ or ๋ฌผ์ฒด or ๋์ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ ์ด๋? Object Oriented Programming ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณด๋ ์๊ฐ์์ ๋ฒ์ด๋ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ๋ ๋จ์, ์ฆ "๊ฐ์ฒด"๋ค์ ๋ชจ์์ผ๋ก ํ์ ํ๊ณ ์ ํ๋ ๊ฒ์ด๋ค. ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. ์ค์ ์ธ๊ณ์ ์ฌ๋ฌผ์ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ฎ๊ฒจ์ ์ด๋ฅผ ๊ฐ์ฒด๋ก ๋ณด๊ณ ํด๋น ๊ฐ์ฒด์ ํน์ง๊ณผ ๊ธฐ๋ฅ์ ๋ชจ๋ธ๋งํ์ฌ ํ๋ก๊ทธ๋๋ฐํ๋ ๊ธฐ๋ฒ์ผ๋ก ์ ์ฐํ๊ณ ๋ณ๊ฒฝ์ด ์ฉ์ดํ๋ค. ( ์ฌ์ฌ์ฉ์ฑ ) ex) Java = ์ปดํฌ๋ํธ๋ฅผ ์ฝ๊ณ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝํ๋ฉด์ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํจ 1. ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์ ํน์ง 1) ๋คํ์ฑ Polymorphism..