객체지향 설계 5원칙

eugene's blog·2021년 7월 8일
0
post-thumbnail

결합도(coupling)와 응집도(cohension)

결합도는 낮추고 응집도는 높이는게 좋다.

1. SRP(Single Responsibility Principle) 단일 책임 원칙

before

public void move(){
	if(name.equals("저글링")) {
    	speed += 3
    }else if(name.equals("탱크")) {
    	if("시즈모드") {
        	speed = 0
        } else {
        	speed = 10
        }
    }else if(name.equals("정찰기")) {
    	speed = 15
        충돌 = false
    }
}

after

class 저글링 extends Unit{
	public void move() {
    	this.speed += 3
    }
}

class 탱크 extends Unit{
	public void move() {
    	if("시즈모드"){
        	speed = 0
        } else {
        	speed = 10
        }
    }
}

class 정찰기 extends Unit{
	public void 정찰기() {
    	this.충돌 = false
    }
    public void move() {
    	speed = 15
    }
}

2. OCP(Open Closed Principle) 개방 폐쇄 원칙

상위 클래스 또는 인터페이스를 중간에 둠으로써, 자신은 변화에 대해 폐쇄적이지만, 인터페이스는 외부의 변화에 대해서 확장을 개방해 줄 수 있다.

3. LSP(Liskov Substitution Principle) 리스코프 치환 원칙

서브 타입은 언제나 자신의 기반(상위) 타입으로 교체 할 수 있어야 한다.

4. ISP(Interface Segregation Principle) 인터페이스 분리 원칙

클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다.
프로젝트 요구 사항과 설계에 따라서 SRP/ISP를 선택한다.

5. DIP(Dependency Inversion Principle) 의존 역전 원칙

자신보다 변하기 쉬운 것에 의존하지 말아야 한다.

POJO JAVA
1. 특정 규약에 종속되지 않는다.
2. 특정 환경에 종속되지 않는다.

POJO Framework
Spring, Hibernate

profile
매일 노력하는 개발자 김유진입니다.

0개의 댓글