반응형
객체지향 설계 과정
- 제공해야 할 기능을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체에 할당한다.
- 기능을 구현하는 데 필요한 데이터를 객체에 추가한다.
- 그 데이터를 이용하는 기능을 넣는다.
- 기능은 최대합 캡슐화하여 구현한다.
- 객체 간에 어떻게 메소드 요청을 주고받을 지 결정한다.
객체지향 설계 원칙
SOLID
라고 부르는 5가지 설계 원칙이 존재한다.
- SRP(Single Responsibility) -
단일 책임 원칙
- 클래스는 단 한개의 책임을 가져야 한다.
- 클래스는 변경하는 이유는 단 한개여야 한다.
- 이를 지키지 않으면 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향이 갈 수 있다.
- OCP(Open-Closed) -
개방 폐쇄 원칙
- 확장에는 열려있어야 하고, 변경에는 닫혀 있어야 한다.
- 기능을 변경하거나 확장할 수 있으면서, 그 기능을 사용하는 코드는 수정하지 않는다.
- 이를 지키지 않으면
instanceof
와 같은 연산자를 사용하거나 다운 캐스팅이 일어난다.
- LSP(Liskov Subsitution) -
리스코프 치환 원칙
- 상위 타입의 객체르르 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
- 상속관계가 아닌 클래스들을 상속 관계로 설정하면, 이 원칙이 위배된다.
- ISP(Interface Segregation) -
인터페이스 분리법칙
- 인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
- 각 클라이언트가 필요로 하는 인터페이스들을 분리함으로써, 각 클라이언트가 사용하지 않는 인터페이스에 변경이 발생하더라도 영향을 받지 않도록 만들어야 한다.
- DIP(Dependency Inversion) -
의존 역전 법칙
- 고수준 모듈을 저수준 모듈의 구현에 의존해서는 안된다.
- 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다.
- 즉, 저수준 모듈이 변경돼도 고수준 모듈을 변경할 필요가 없는 것이다.
참조
https://velog.io/@hkoo9329/%EC%9E%90%EB%B0%94-extends-implements-%EC%B0%A8%EC%9D%B4
반응형
'웹 프로그래밍 > [ Spring ]' 카테고리의 다른 글
[ Spring ] 05. MVC패턴이란 무엇인가? (0) | 2021.06.30 |
---|---|
[ Spring ] 04. POJO (Plain Old Java Object)에 관해 (0) | 2021.06.30 |
[ Spring ] 03. JSP(Java Server Page) (0) | 2021.06.30 |
[ Spring ] 02. Servlet(서블릿)을 파헤쳐보자. (0) | 2021.06.30 |
[ Spring ] 00. OOP(객체지향 프로그래밍) (0) | 2021.06.30 |