๐ป JAVA/๋์์ธ ํจํด
1. ๊ฐ๋จํ ํฉํ ๋ฆฌ ํจํด ๋จผ์ ๊ฐ๋จํ ํฉํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋ณด๊ณ ์ด๋ฅผ ์ ์ง์ ์ผ๋ก ํจํด์ ์ ์ฉํ์ฌ ์
๊ทธ๋ ์ด๋ ํ๋ ์์ผ๋ก ์งํํด๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ ์๋์ ๋
ธํธ๋ถ์ ์์ฑํ๋ ํจ์๊ฐ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์ type์ ๋ฐ๋ผ์ ๋
ธํธ๋ถ์ ์์ฑํ๊ณ ์ค๋น, ์ค์ , ํฌ์ฅํด์ ์ต์ข
์ ์ผ๋ก ๋
ธํธ๋ถ์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค. public NoteBook creatNoteBook(String type) { NoteBook noteBook; if(type.equals("Macbook")) { noteBook = new MackBook(); } else if (type.equals("LG Gram")) { noteBook = new LGGram(); } else if (type.equals("GalaxyBook")) { noteBook = new Ga..
๐ป JAVA/๋์์ธ ํจํด
์ปค๋งจ๋ ํจํด ์ ์ ) ์ปค๋งจ๋ ํจํด์ ์ด์ฉํ๋ฉด ์๊ตฌ์ฌํญ์ ๊ฐ์ฒด๋ก ์บก์ํ ํ ์ ์์ผ๋ฉฐ, ๋งค๊ฐ๋ณ์๋ฅผ ์จ์ ์ฌ๋ฌ๊ฐ์ง ๋ค๋ฅธ ์๊ตฌ ์ฌํญ์ ์ง์ด ๋ฃ์์ ์๋ค. ๋ํ, ์์ฒญ ๋ด์ญ์ ํ์ ์ ์ฅํ๊ฑฐ๋ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ์ฌ, ์์
์ทจ์ ๊ธฐ๋ฅ๋ ๋ฃ์์ ์๋ค. ์ปค๋งจํธ ํจํด์ ์ผ๋ จ์ ํ๋์ ํน์ ๋ฆฌ์๋ฒ ํ๊ณ ์ฐ๊ฒฐ ์ํด์ผ๋ก์จ ์๊ตฌ ์ฌํญ์ ์บก์ํ ์ํจ๋ค. ์์ฒญ์ ํ๋ ๊ฐ์ฒด์ ๊ทธ ์์ฒญ์ ์ํํ๋ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฆฌ์ํค๊ณ ์ถ๋ค๋ฉด ์ปค๋งจ๋ ํจํด์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ปค๋งจ๋ ํจํด : ํด๋์ค ๋ค์ด์ด๊ทธ๋จ Remote Control ์์ public class LightOnCommand implements Command { Light light; public LightOnCommand(Light light) { this.light = light; } public..
๐ป JAVA/๋์์ธ ํจํด
์ธ์คํด์ค ์์ฑํ ๋ ์ด๋ป๊ฒ ํ ๊น? --------> new MyClass(); ๋ง์ฝ ์์ฑ์๊ฐ private์ผ๋ก ์ ์ธ๋ผ์์ผ๋ฉด? --------> ์ธ์คํด์ค ์์ฑ ๋ถ๊ฐ. ์์ฑํ๊ฒ ํ๋ ค๋ฉด?? --> ์ธ์คํด์ค๋ณ์๋ฅผ static๋ณ์๋ก ๋ฏธ๋ฆฌ ์ ์ธํ --> ์์ฒญ์ ์ธ์คํด์ค ๋ณ์๋ฅผ ๋ง๋ค์ด์ ๋๊ฒจ์ฃผ๋ ์์ผ๋ก ์์ฑํด์ค๋ค. public class Singleton{ private static Singleton uniqueInstance; private Singleton() { } // private๋ก ์ ์ธ๋ ์์ฑ์ public static Singleton getInstance() { //์ธ์คํด์ค ์์ฑํ๋ ๋ฉ์๋ if (uniqueInstance == null) { //์ธ์คํด์ค๊ฐ ์์ฑ๋ ์ ์ด ์๋์ง ํ์ธํ uniqueInsta..
๐ป JAVA/๋์์ธ ํจํด
"new" ๋ ๊ตฌ์ ๊ฐ์ฒด๋ฅผ ๋ปํ๋ค. ์์์ ๋ฐฐ์ด ๊ฒ ์ฒ๋ผ ๊ตฌ์ํด๋์ค๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋ฉํ๋ฉด ๋์ค์ ์ฝ๋๋ฅผ ์์ ํด์ผ ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๊ณ , ์ ์ฐ์ฑ์ด ๋จ์ด์ง๊ฒ ๋๋ค. Duck duck; if( picnic) { duck = new MallardDuck(); } else if( hunting ){ duck = new DecoyDuck(); } else if ( inBathTub){ duck = new RubberDuck(); } ์ด๋ฐ ์ฝ๋๋ ๋ญ๊ฐ๋ฅผ ๋ฐ์ํ๊ฑฐ๋, ํ์ฅํด์ผ ํ ๋ ์ฝ๋๋ฅผ ๋ค์ ํ์ธํ๊ณ ์ถ๊ฐ ๋๋ ์ ๊ฑฐ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋ปํ๋ค. ๋ฐ๋ผ์ ์ด๋ฐ ์ฝ๋๋ ๊ด๋ฆฌ ๋ฐ ๊ฐฑ์ ์ด ํ๋ค์ด์ง๊ณ ์ค๋ฅ๊ฐ ์๊ธธ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค. ์ ํ๋ฆฌ์ผ์ด์
์์ ๊ตฌ์ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๋ถ๋ถ์ ์์ ๋ค๋ฅธ์ชฝ์ผ๋ก ๋ถ๋ฆฌ ์์ผ์ผ ํ๋ค. ์์์ ๋ฐฐ์ ๋..
๐ป JAVA/๋์์ธ ํจํด
์ปคํผ ์ ๋ฌธ์ ์ ์๊ฐํด๋ณด์. ๊ฐ์ฒด ๋ง์์ ์คํ๋ฒ์ฆ๋ผ๋ ์ปคํผ์์ด ์๋ค. ์ปคํผ์ ์ข
๋ฅ๋ ์ฌ๋ฌ๊ฐ์ง์ ์ถ๊ฐํ ์ ์๋ ๋ฉ๋ด๊ฐ ์์ญ๊ฐ์ง๊ฐ ๋ ์๋ ์๋ค. ๋ค์ ๊ทธ๋ฆผ์ ๋ณด์. ์ด๋ ๊ฒ ํด๋์ค ๊ฐ์๊ฐ ์์ฒญ๋๊ฒ ๋์ด๋๋ค. ์ปคํผ ๋ฉ๋ด๊ฐ ๋ ๋์ด๋๋ฉด ํจ์ฌ ๋ ๋์ด๋ ๊ฒ์ด๋ค. ์์์ด ๊ฐ๋ ฅํ๊ธด ํ์ง๋ง, ๋ชจ๋ ์๋ธ ํด๋์ค์์๋ ๋๊ฐ์ ํ๋์ ์์๋ฐ๊ฒ ๋๋ค. ์ด๋ด๋, ๊ตฌ์ฑ์ ํตํด์ ํ๋์ ํ์ฅํ๊ฒ ๋๋ฉด ์คํ์ค์ ๋์ ์ผ๋ก ํ๋์ ์ค์ ํ ์์๋ค. (์คํธ๋ ํฐ์ง ํจํด) ๋์์ธ ์์น ) ํด๋์ค๋ ํ์ฅ์ ๋ํด์๋ ์ด๋ ค์์ด์ผ ํ์ง๋ง, ์ฝ๋ ๋ณ๊ฒฝ์ ๋ํด์๋ ๋ซํ ์์ด์ผ ํ๋ค. O.C.P ( Open-Closed Principle) *๋ฌด์กฐ๊ฑด OCP๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น๊ฐ ๋ ์๋ ์๋ค. ์ฝ๋๋ฅผ ํ์ฅํด์ผ ํ ๋ถ๋ถ์ ์ ํํ ๋๋ ์ธ์ฌํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ..
๐ป JAVA/๋์์ธ ํจํด
* ์ต์ ๋ฒ ํจํด์ ์ฝ๊ฒ ๋งํด์, ์ ๋ฌธ์ฌ ๊ตฌ๋
๋ฉ์ปค๋์ฆ๊ณผ ๊ฐ๋ค๊ณ ํ ์ ์๋ค. ์ถํ์ฌ๋ฅผ ์ฃผ์ (Subject) , ๊ตฌ๋
์๋ฅผ ์ต์ ๋ฒ(Observer) ๋ผ๊ณ ์ ํด๋ณด์. ์ต์ ๋ฒ๋ ๋ฑ๋ก(register) , ์ ๊ฑฐ(remove) ๊ฐ ์์ ๋กญ๋ค. ์ต์ ๋ฒ ํจํด ์ ์ ) ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ฐ๋๋ฉด ๊ทธ ๊ฐ์ฒด์ ์์กดํ๋ ๋ค๋ฅธ ๊ฐ์ฒด๋คํํ
์ฐ๋ฝ์ด ๊ฐ๊ณ , ์๋์ผ๋ก ๋ด์ฉ์ด ๊ฐฑ์ ๋๋ ๋ฐฉ์์ผ๋ก ์ผ๋๋ค ์์กด์ฑ์ ์ ์ํ๋ค. ์ต์ ๋ฒ์ ๋ํ ๋ชจ๋ ์ ์ด ( ๋ฑ๋ก(register) , ์ ๊ฑฐ(remove) , ์๋ฆผ(notify) ) ๋ Subject์์ ๊ด๋ฆฌํ๋ค. ๋์์ธ ์์น ) ์๋ก ์ํธ์์ฉ์ ํ๋ ๊ฐ์ฒด ์ฌ์ด์์๋ ๊ฐ๋ฅํ๋ฉด *๋์จํ๊ฒ ๊ฒฐํฉํ๋ ๋์์ธ์ ์ฌ์ฉํด์ผํ๋ค. * ๋ณ๊ฒฝ์ฌํญ์ด ์๊ฒจ๋ ์ฝ๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ ์๊ฐ ์๋ค. ๊ฐ์ฒด ์ฌ์ด์ ์ํธ์์กด์ฑ์ ์ต์ํ ํ ์ ..
'๐ป JAVA/๋์์ธ ํจํด' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.