-
#15 ๋งค์ผ_๋ก๊ทธAbout Lemon/๋งค์ผ์_์ผ์ง 2020. 1. 15. 23:43
#์ํ_๋ก๊ทธ
ํ์ค์ผ ์คํฐ๋์ ํ์์ ๋ฒ๊ทธ ํฝ์ค๋ก ์ ์ ์๋ ํ๋ฃจ๋ฅผ ๋ณด๋๋ค. ์ค๊ฐ์ค๊ฐ ์งฌ๋ด์ ๋ฆฌํฉํ ๋ง์ ์ฝ์ ๊ฑด ์ ํ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ญ์ ์ฐ์ฑ ์ ์ ๋๊ฐ๋๊น ๊ฐ๊ฐํ ๋ง์์ด ๊ฐ์์ง๋ฅผ ์๋๋ผ๊ตฌ... ์ค๊ฐ์ 15๋ถ ์ ๋ ์ฐ์ฑ ์ ๊ผญ ๋ฃ์ด์ผ๊ฒ ๋ค. ์ญ์ ๋๋ ํ๋น์ ์ฌ์ด์ผ ํด...
#์ค๋์_๊ฐ๋ฐ
์ค๋์ TypeCode๋ฅผ Stringํ์ผ๋ก ํ์ง ์๊ณ String์ ๋ฐํํ๋ ํด๋์ค๋ก ๊ตฌ์ฑํ๋ค. ๊ธฐ์กด์๋ enum์ ๋ง๋ค๊ณ , ์ด enum์ ๋ค์ String์ผ๋ก ๋์นํด์ฃผ๋ Dictionary๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ผ์๊ฒ ์ง๋ง, ์ด๋ฒ์ ๊ฐ๋ ์ฑ๊ณผ ์ด ๋ ๋ฐ์ ์๋ค๋ผ๋ ๊ฐ์ ์ฑ์ ๋ ๋ช ํํ๊ฒ ํ๊ณ ์ถ์ด ์ด ๋ฐฉ๋ฒ์ ์ฐ๊ฒ ๋์๋ค.
๋ด ์๊ฐ์๋ ๊ฐ๋ ์ฑ์ด ๋ ์ข์์ง ๊ฑฐ ๊ฐ๊ธด ํ๋ฐ, ๋ค๋ฅธ ๋ถ๋ค ์๊ฒฌ์ ๋ค์ด๋ด์ผ๊ฒ ๋ค.
์.. ์ง๊ธ ๋ค์ ์๊ฐํด๋ณด๋ Enum ์ชฝ์ด ๊ฐ์ ์ฑ์ด ๋ ์๋ ๊ฑฐ ๊ฐ๊ธฐ๋ ํ๊ณ ... :(
#์ค๋์_๋ ์
#๋ฆฌํฉํ ๋ง ์ฝ๊ธฐ
Null ๊ฐ์ฒด
if ๊ฐ์ฒด == null ๊ตฌ๋ฌธ์ด ๋๋ฌด ๋ง์ด ๋์จ๋ค๋ฉด, Null์ ๋ด๋นํ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ์.
๋จ, ์ด ๋ฐฉ๋ฒ์ ๋ฌธ์ ๋ ์ค๋ฅ๋ฅผ ํ์งํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค ์ ๋ ์๋ค๋ ์ ์ ์ ์ํ์.
null ๊ฐ์ฒด๋ if ๊ฐ์ฒด == null ๋์ , ๋น ๊ฐ๋ฑ ๊ธฐ๋ณธ ๊ฐ์ ๋ค๊ณ ์๋ null ์ ์ฉ ๊ฐ์ฒด์ด๋ค. ์ด๋ฅผ ์ฑ๊ธํค์ ๊ตฌํํ๊ณ , if ๊ฐ์ฒด == null์ ์ญ์ ํ๋ค.
์ด ๋ ์ฅ์ ์ if ๊ฐ์ฒด == null ๊ตฌ๋ฌธ์ ์ค์ผ ์ ์๊ณ , ๊ธฐ๋ณธ๊ฐ์ ์ฃผ๋ ์ฝ๋๋ ๋ ๊น๋ํ ํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ์ผํ๋ชฐ ๊ณ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ฐํํด์ผ ํ ๋, NullCustomer ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด null ๋น๊ต ๊ตฌ๋ฌธ์ ๋์นํ ์ ์๋ค.
๋จ, ์ด ๊ฒฝ์ฐ ์ ๋ null์ด๋ฉด ์๋๋ ์ํฉ์ผ ๋๋ฅผ ์ํด, ํด๋น ๊ฐ์ฒด๊ฐ NullCustomer์ธ์ง ์๋์ง ์ ์ ์๋ ๋ฉ์๋๊ฐ ํ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ํ, null ์ด์ด์ผ ํ ๋ ๊ธฐ๋ณธ๊ฐ์ ๋๋ ค์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ํ ์คํธ๋ฅผ ์ด๋ ต๊ฒ ํ ์ ์๋ ๋จ์ ์ด ์์ผ๋ฏ๋ก, ์ฌ์ฉ ์์ ์ด ์ ์ ์ ์ํด์ผ ํ๋ค๊ณ ํ๋ค.
์๋ง๋ null ๊ฐ์ฒด๊ฐ ๊ฐ์ ธ๋ค ์ฃผ๋ ์ฅ์ ์ด ๋จ์ ๋ณด๋ค ๋ ๋ง์ผ๋๊น, ์ ์ํ๋ผ๊ณ ๋ง ํ๊ณ ๋ง์ด ์ฌ์ฉ ํ๋ ๊ฒ ๊ฐ๋ค. ์ด ๊ฑด ์กฐ๊ธ ๋ ๊ณต๋ถํด๋ด์ผ๊ฒ ๋ค.
์ฐธ๊ณ ๋งํฌ
https://johngrib.github.io/wiki/null-object-pattern/
#์ค๋์_๊ฒฝ์
์ค๋์ ํ์ค์ผ ์คํฐ๋ ๋ฑ๋ฑ์ผ๋ก ์คํต. ๋ ์ด์ ๋์ ๋ด์ฉ์ด ๋ค์ด์ค์ง ์์๋ฐ.. ๋ด์ผ ์ ์ฌ์๋ ๊ผญ ๋ค์ด์ผ์ง.
'About Lemon > ๋งค์ผ์_์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#17 ๋งค์ผ_๋ก๊ทธ (0) 2020.01.17 #16 ๋งค์ผ_๋ก๊ทธ (0) 2020.01.16 #14 ๋งค์ผ_๋ก๊ทธ (0) 2020.01.14 #13 ๋งค์ผ_๋ก๊ทธ (0) 2020.01.13 #11 ๋งค์ผ_๋ก๊ทธ ๊ฒธ ์ด๋ฒ์ฃผ ๋๋์๋ณด๊ธฐ (0) 2020.01.11