๋คํ์ฑ, OCP, DIP์ ์ฐจ์ด์
๋น์ทํ ์๊ฐ์ด ๋ค์ด์ ๊ณ ๋ฏผํด๋ดค๋๋ฐ Collection Framework์์ LinkedList๋ฅผ ์๊ฐํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. (์งง์ ์๊ฒฌ์ด๋ผ ๋ถ์กฑํ ๋ต๋ณ์ผ ๊ฑฐ ๊ฐ์๋ฐ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.)LinkedList๋ Node๋ผ๋ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ์ธ๋ฐ, OCP์ ์์น์ ์ํด์๋ Node์ ๊ฐ์ ์์ ํ ๋ ์ง์ ์์ ํ์ง ๋ชปํ๊ฒ ํ์ํ๋ฉด์๋, ์ฐ๊ด๊ด๊ณ๋ฅผ ๋งบ์ด์ฃผ๋ ์ค์ ์๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์private E item;private Node next;private int size;๋ก ์ธ๋ถ์์ Node์ ๊ฐ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก private ์ ๊ทผ ์ ์ด์๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ๊ฐ์ ๋ณ์์ ๋ํด setter์ getter๋ฅผ ์ค์ ํด์ ์ธ๋ถ์์ Node์ ๋ด๋ถ ๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ถ๋ ฅํ๋๋ก ํ๋ ๊ฑฐ์ฃ . ๊ทธ๋ฌ๋ฉด์๋ LinkedList๋ List๋ผ๋ ์ถ์์ ์ธ ์ธํฐํ์ด์ค์ ์์กดํ๊ณ ์๊ณ , ์ค์ ๊ตฌํ ๋ด์์ LinkedList๋ฅผ ์ฌ์ฉํ๋ ์๋ฆฌ์ ArrayList๋ฅผ ์ฌ์ฉํด๋ ์๊ด์์ต๋๋ค.๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ private์ public์ผ๋ก ๋ฐ๊พธ๋ฉด ์ธ๋ถ์์ Node์ item, next, size์ ์ ๊ทผ ๊ฐ๋ฅํ๋ฏ๋ก OCP ์์น์ ์ด๊ธ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ LinkedList๋ฅผ ์ฌ์ฉํ๋ ๊ตฌํ์ฒด ๋ด์์ ArrayList๋ก ๋ฐ๊พผ๋ค ํ๋ค add, remove ๋ฑ์ ๋ฉ์๋๋ ์ ๋ถ ์ถ์์ ์ธ List๋ผ๋ ์ธํฐํ์ด์ค์ ์์กดํ๋ฏ๋ก DIP๋ ์ง์ผ์ง๊ฒ ์ฃ .๋ ๊ด๊ณ๊ฐ ์ฝ๊ฒ ๋ผ์ด๋ด๊ธฐ๊ฐ ์ ๋งคํ ๋ถ๋ถ์ด ํ์คํ ์๋ ๊ฒ ๊ฐ์๋ฐ, ์ด์จ๊ฑฐ๋ ํ์คํ ๋ค๋ฅธ ๊ฐ๋
์ด๋ผ๋ ์๊ฐ์ด ๋ค์ด์ ์ด๋ ๊ฒ ๋ต๋ณ ๋จ๊ฒจ๋๋ ค์.