home
자바
home

좋은 객체 지향 프로그래밍이란?

다형성의 실세계 비유

운전자-자동차
자동차(자동차 역할==인터페이스)가 바뀌어도 운전자에게는 영향을 미치지 않음
자동차 모델 == 구현
공연 무대
키보드, 마우스, 세상의 표준 인터페이스들
정렬 알고리즘
할인 정책 로직

역할과 구현을 분리

역할과 구현으로 구분하면 단순, 유연해지고, 변경이 편리해진다
객체 설계시 역할을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
클라이언트 : 요청, 서버 : 응답

자바 언어의 다형성

오버라이딩
다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경 가능
클래스 상속관계도 다형성, 오버라이딩 적용가능
인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경 가능

스프링과 객체 지향

다형성이 가장 중요
스프링은 다형성을 극대화해서 이용할 수 있게 도와줌
제어의 역전, 의존관계 주입은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원함
스프링을 사용하면 구현을 편리하게 변경 가능