반응형
객체 지향
객체 지향은 여러 독립된 단위를 파악하고자 하는 것 입니다.
독립된 단위란 객체로 볼 수 있고 결과적으로는 이런 객체들의 뭉치를 파악하는 것 입니다.
객체 지향 프로그래밍은 프로그램을 유연하고 변경이 쉽게 만들기 때문에 대규모 프로젝트에서 많이 사용됩니다.
다형성
다형성은 유연하고 변경에 용이합니다.
역할과 구현으로 나누어 표현할 수 있고 강의를 보면서 이해하기 편했던 예시가 자동차입니다.
운전자 역할과 자동차 역할이 있습니다.
운전자 역할과 자동차 역할은 1 대 1로 매칭이 되는데 여기서 자동차를 구현한다면 마티즈, 소울, 티코 등으로 구현할 수 있습니다.
자동차 역할 안에 마티즈 구현, 소울 구현, 티코 구현 이렇게 됐을 때 장점은 유연하고 변경이 쉬워집니다.
예를 들면 운전자 역할과 자동차 역할이 매칭이 되어있는 상태에서 굳이 다른 자동차 역할을 바꿀 필요가 없이 자동차 구현체만 바꾸면 되기 때문에 새로운 차가 생겨도 운전자 역할을 바꿀 필요가 없어지는 겁니다.
즉, 역할과 구현을 분리시켜 단순하고 유연하고 변경이 쉽게 만들어주는 겁니다.
이것을 자바로 대입해 보면 역할은 인터페이스, 구현은 인터페이스를 구현한 클래스 또는 구현 객체로 볼 수 있습니다.
객체를 설계할 때 역할과 구현을 명확히 분리하고 객체 설계시에는 역할(인터페이스)를 먼저 부여하고 그 역할을 수행하는 구현 객체를 만들어 줍니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 제어의 역전 (0) | 2022.01.04 |
---|---|
[Spring Boot] : DIP 코드를 리팩터링하여 OCP도 만족하게 하기 (0) | 2022.01.04 |
[Spring Boot] : DIP 의존 관계 역전 원칙 적용 예시 (0) | 2022.01.03 |
[Spring Boot] : 프로젝트 설정 (0) | 2021.12.15 |
[Spring Boot] : 스프링 부트와 스프링 (0) | 2021.12.15 |
댓글