아래의 코드를 보면 단일 책임을 원칙을 위배하여 Unit이라는 클래스에서
저글링, 탱크, 정찰기 등 2가지 이상의 것들에 대해서 Unit이 책임을 지고 있다.
|
하지만 이런식으로 프로그래밍할 경우 Unit클래스에 대한 의존성이 너무 높아지게된다.
좋은 객체지향 프로그래밍은 의존성을 낮추어야 하므로 다시 아래와 같이 작성해야한다.
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
|
package SPR_test;
public class zergling extends Unit {
public void move() {
this.speed += 3;
}
}
package SPR_test;
public class Observer extends Unit{
public void move() {
this.speed += 3;
this.status =3;
}
}
package SPR_test;
public class tank extends Unit {
public void move() {
this.speed += 3;
if (this.status == 1) {
speed = 0;
}else{
speed = 10;
}
}
}
|
cs |
또 이렇게 저글링, 탱크, 정찰기가 각각의 기능만 수행하게 작성하려고
Unit클래스를 상속받게 되는데 이때
priavate 접근제한을 갖는 필드와 메소드는 상속은 되지만 자식 클래스에서 직접 접근할 수 없다.
따라서 자식클래스에게 상속시켜야 하는 필드나 메소드가 있다면
private이 아닌 protected또는 public 으로 선언해야할 것이다.
'Java' 카테고리의 다른 글
Java - 어노테이션(Annotation)이란 무엇인가? (0) | 2022.01.07 |
---|---|
OCP(Open Closed Principle) 개방 폐쇄 원칙 (0) | 2022.01.06 |
객체 설계하기 및 객체의 4가지 특성(캡슐화, 상속,다형성,추상화) (0) | 2022.01.05 |
[Java] - 메이븐 웹프로젝트 생성방법 (0) | 2020.11.04 |
[Java] - 메이븐 프로젝트 (0) | 2020.11.04 |