728x90
I. ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฝ๋๋ฅผ ๋ณ๋ ํด๋์ค์ ๋ฉ์๋๋ก ๋ถ๋ฆฌํ๋ฉด์ ๊ฐ์ฒด ์์ฑ ๋ฐฉ์์ ๋ณํ์ ๋๋นํ๋ ํจํด์ด๋ค.
1. ์์ ์ด ์์ฑํด์ผํ๋ ๊ฐ์ฒด๊ฐ ์ด๋ค ํด๋์ค์ธ์ง ์์ ์์๋,
2. ์์ฑํ ๊ฐ์ฒด๋ฅผ ๊ธฐ์ ํ๋๊ฒ์ ์๋ธํด๋์ค๋ก ์ด๊ด์ํค๊ณ ์ถ์๋ ์ฌ์ฉํ๋ค.
ํ์ค๋ก ์์ฝํด ํด๋์ค์ ์ธ์คํด์ค ์์ฑ ๊ฒฐ์ ์ ์๋ธํด๋์ค๊ฐ ๋ด๋ฆฌ๊ฒํ๋ค.
์์
1.<Main Class>
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
package main;
import java.util.ArrayList;
import java.util.List;
import animal.Animal;
import animal.Cat;
import animal.Dog;
import animal.Cow;
import factory.AnimalFactory;
public class MainClass {
public static void main(String[] args) {
Animal a1 = AnimalFactory.create("๋ฉ๋ฉ์ด");
Animal a2 = AnimalFactory.create("์ผ์น์ด");
Animal a3 = AnimalFactory.create("ํฉ์");
a1.printDescript();
a2.printDescript();
a3.printDescript();
((Dog)a1).dogMethod();
Cat c = (Cat)a2;
c.catMethod();
((Cow)a3).cowMethod();
String aniName[] = { "์ผ์น์ด", "๋ฉ๋ฉ์ด", "๋ฉ๋ฉ์ด","์ผ์น์ด","ํฉ์" };
List<Animal> list = new ArrayList<Animal>();
for (int i = 0; i < aniName.length; i++) {
Animal a = AnimalFactory.create(aniName[i]);
list.add(a);
}
/* ์ด๋ ๊ฒ๋ ์ฌ์ฉ๊ฐ๋ฅ
Animal a = AnimalFactory.create("๋ฉ๋ฉ์ด");
list.add(a);
a = AnimalFactory.create("์ผ์น์ด");
list.add(a);
a = AnimalFactory.create("ํฉ์");
list.add(a);*/
for (int i = 0; i < list.size(); i++) {
Animal ani = list.get(i);
ani.printDescript();
if(ani instanceof Dog) {
((Dog)ani).dogMethod();
}
else if(ani instanceof Cow) {
((Cow)ani).cowMethod();
}
else if(ani instanceof Cat) {
((Cat)ani).catMethod();
}
}
}
}
|
cs |
2. <Animal>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package animal;
public class Cat implements Animal {
@Override
public void printDescript() {
System.out.println("์ผ์น์ด์
๋๋ค");
}
public void catMethod() {
System.out.println("์ผ์น ์ผ์น");
}
}
|
cs |
3. <AnimalFactory>
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
|
package factory;
import animal.Animal;
import animal.Cat;
import animal.Cow;
import animal.Dog;
public class AnimalFactory {
public static Animal create(String animalName) {
if(animalName.equals("")) {
System.out.println("์์ฑํ ํด๋์ค๊ฐ ์์ต๋๋ค.");
}
if(animalName.equals("์ผ์น์ด")) {
return new Cat();
}
else if(animalName.equals("๋ฉ๋ฉ์ด")) {
return new Dog();
}
else if(animalName.equals("ํฉ์")) {
return new Cow();
}
return null;
}
}
|
cs |
4.<Dog>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package animal;
public class Dog implements Animal {
@Override
public void printDescript() {
System.out.println("๋ฉ๋ฉ์ด์
๋๋ค");
}
public void dogMethod() {
System.out.println("๋ฉ๋ฉ");
}
}
|
cs |
5. <Cow>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package animal;
public class Cow implements Animal {
@Override
public void printDescript() {
System.out.println("ํฉ์์
๋๋ค");
}
public void cowMethod() {
System.out.println("์๋ฉ~");
}
}
|
cs |
6.<Cat>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package animal;
public class Cat implements Animal {
@Override
public void printDescript() {
System.out.println("์ผ์น์ด์
๋๋ค");
}
public void catMethod() {
System.out.println("์ผ์น ์ผ์น");
}
}
|
cs |
'๐ ์๋ฐ Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ผ๊ตฌํ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ DAO, DTO + ArrayList + Singleton ์ฌ์ฉ (0) | 2021.02.05 |
---|---|
Generics (์ง๋ค๋ฆญ์ค) (0) | 2021.02.05 |
Singleton(์ฑ๊ธํค ํจํด) (0) | 2021.02.04 |
List์ HashMap, Iterator์ ํ์ฉํ ์ผ๊ตฌ ์ ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ (0) | 2021.02.03 |
HashMap๊ณผ TreeMap (0) | 2021.02.03 |
๋๊ธ