ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 왜 객체지향을 할까?
    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 가 제공하는 기능 중에 필요한 기능(메서드)을
      호출해서 사용하기만 하면 된다.

     


    참고: 김영한의 실전 자바-기본편, 인프런

    댓글

Designed by Tistory.