스프링 핵심 원리_객체지향(1)

네코·2022년 4월 23일
0

객체 지향

def

컴퓨터 프로그램을 객체들의 모임으로 파악.
각각의 객체들은 메시지를 주고받고, 데이터를 처리할 수 있다.

프로그램을 유연하고 변경 용이하게 만드는 장점이 있다.
=>컴포넌트를 쉽게 변경하면서 개발 할 수 있다는 것. (다형성)

다형성

역할 과 구현으로 생각한다.
구분을 통해 관련 있는 객체 사이에서 한쪽 객체의 구현이 달라지더라도 달라진 구현은 역할을 따르고 있기 때문에 다른 객체에 영향을 주지 않고 변경하거나 기능을 확장해 나갈 수 있다.

역할과 구현을 분리

  • 클라이언트는 대상의 역할만 알면된다.

  • 클라이언트는 구현 대상의 내부를 몰라도 된다.

  • 클라이언트는 구현 대상의 내부가 변경되어도 영향 받지 않는다.

  • 클라이언트느 구현 대상 자체를 변경해도 영향을 받지 않는다.

    역할은 인터페이스, 구현은 인터페이스를 구현한 클래스, 인스턴스

    객체를 설계할 때 역할을 먼저 부여하고, 역할을 수행하는 객체를 만드는 것.

    객체의 협력 (= 관계)부터 생각
    혼자 모든 일을 수행하는 객체는 없다
    클라: 요청, 서버: 응답

자바 언어에서의 다형성

오버라이딩으로 이를 구현
인터페이스를 구현한 객체를 실행 시점에서 알맞게 호출

역할과 구현 분리의 한계

  • 역할 (인터페이스) 자체가 변하면 클라이언트, 서버 모두에 변경이 발생한다.

0개의 댓글