Java에서 함께 쓰는 네 프로그래밍 관점

같은 문제를 어떤 단위와 질문으로 설명하는지 구분한다.

Java application

명령형

실행 순서와 상태 변경을 기술한다

how

절차지향

명령을 function 단위로 나눈다

procedure

객체지향

data와 invariant의 owner를 만든다

object

함수형

값 변환과 behavior 합성을 표현한다

function

핵심: 한 언어 안에서도 boundary 책임에 따라 여러 패러다임을 조합할 수 있다.