좋은 객체 지향 프로그래밍

소낙눈·2025년 3월 23일

Spring

목록 보기
2/12

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다.

유연하고 변경이 용이하다?
=> 다형성(Polymorphism)

다형성의 실세계 비유

ex1) 운전자와 자동차
▸ 운전자는 자동차의 종류에 관계없이 운전이 가능하다.
⁕ 자동차의 변경은 운전자에게 영향이 없다.
⁕ 운전자는 자동차의 내부 구조를 몰라도 지장이 없다.
ex2) 공연(로미오와 줄리엣)
▸로미오 역할을 맡을 배우는 누구나 가능
▸줄리엣 역할을 맡을 배우는 누구나 가능
⁕ 상대 배우의 변경은 공연에 영향이 없다.

역할과 구현을 분리?
JAVA의 다형성을 활용
▸ 역할 == 인터페이스
▸ 구현 == 인터페이스를 구현한 클래스 or 구현 객체
객체를 설계할 때 역할구현을 명확히 분리해야함

⁕ 중요도: 역할>>>구현

다형성의 본질
클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다.

역할과 구현을 분리
정리
▸ 유연하고 변경이 용이
▸ 확장 가능한 설계
▸ 클라이언트에 영향을 주지 않는 변경
▸ 인터페이스를 안정적으로 잘 설계하는 것이 중요
한계
▸ 역할(인터페이스) 자체가 변하면?
▸ 클라이언트, 서버 모두에 큰 변경이 발생
▸ ex) 자동차가 비행기로 변경, 공연의 대본 자체가 변경

스프링과 객체 지향
▸ 결국 다형성이 가장 중요하다.
▸ 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.

출처
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

profile
고민중

0개의 댓글