-
왜 객체지향을 할까?JAVA/개념 - 김영한 강의 2024. 8. 11. 08:02
객체지향에 앞서 3가지의 절차지향 프로그램을 차례대로 보자면,
절차지향
(왼) 절차지향 1 / (오) 절차지향2
1->2 비교- 음악 플레이어와 관련된 데이터는 MusicPlayerData 클래스에 존재
- 이후에 다양한 변수들이 추가되더라고 음악 플레이어와 관련된 변수들은 MusicPlayerData data 객체에 속해있으므로 쉽게 구분할 수 있다
절차지향3
- 중복 로직 제거: 같은 로직이 필요하면 해당 메서드를 여러번 호출하면 된다
- 기능을 수정할 때 해당 메서드 내부만 변경하면 된다
- 메서드 이름 추가 삭제 등을 통해 코드를 더욱 쉽게 이해할 수 있다.
But, 한계
- 데이터와 기능이 분리되어 있다
- 음악 플레이어의 데이터는MusicPlayerData 에 있는데, 그 데이터를 사용하는 기능은 MusicPlayerMain3 에 있는 각각의 메서드에 분리되어 있다. 따라서 이후에 관련 데이터가 변경되면 MusicPlayerMain3 부분의 메서드들도 함께 변경해야 한다. 그리고 이렇게 데이터와 기능이 분리되어 있으면 유지보수 관점에서도 관리 포인트가 2곳으로 늘어난다.
객체지향
- 음악 플레이어에 필요한 속성과 기능을 모두 하나의 클래스 안에 정의했다.
- MusicPlayer 객체를 생성하고 필요한 기능(메서드)을 호출하기만 하면 된다! 이게 얼마나 편하냐면,
- MusicPlayer 를 사용하는 입장에서는 MusicPlayer 의 데이터인 volume , isOn 같은 데이터는 전혀 사
용하지 않는다. - MusicPlayer 를 사용하는 입장에서는 이제 MusicPlayer 내부에 어떤 속성(데이터)이 있는지 전혀 몰라도
된다. - MusicPlayer 를 사용하는 입장에서는 단순하게 MusicPlayer 가 제공하는 기능 중에 필요한 기능(메서드)을
호출해서 사용하기만 하면 된다.
참고: 김영한의 실전 자바-기본편, 인프런
'JAVA > 개념 - 김영한 강의' 카테고리의 다른 글
접근제어자 / 캡슐화 (0) 2024.08.30 생성자 -오버로딩(Overloading)과 this() + 오버라이딩(Overriding) (0) 2024.08.25 생성자 (0) 2024.08.24 기본형과 참조형 (0) 2024.08.13 왜 개체지향을 할까? - 예제 (0) 2024.08.11