앞선 절차 지향 프로그래밍에서 볼륨 올리기 위한 코드에는 중복이 많이 사용되었는데 음악 플레이어 켜기, 꺼기 볼륨 증가, 감소 등 재사용될 수 있는 부분들을 메서드를 사용하여 코딩을 해보겠습니다.
각각의 기능들을 메서드로 만든 덕분에 각각의 기능이 모듈화 되었습니다. 모듈화의 장점에 대해 알아보겠습니다.
- 중복 제거 : 로직 중복이 제거되었습니다. 같은 로직이 필요하면 해당 메서드를 여러번 호출하면 됩니다.
- 변경 영향 범위 : 기능을 수정할 때 해당 메서드 내부만 변경하면 됩니다.
- 메서드 이름 추가 : 메서드 이름을 통해 코드를 쉽게 이해할 수 있습니다.
모듈화란?
쉽게 이야기해서 레고 블럭을 생각하면 됩니다. 필요한 블럭을 가져다가 꼽아서 사용할 수 있고 여기서 음악 플레이어의 기능이 필요하면 해당 기능을 메서드 호출 만으로 손쉽게 사용할 수 있습니다. 이제 음악 플레이어와 관련된 메서드를 조립해서 프로그램을 작성할 수 있습니다.
절차 지향 프로그래밍의 한계
위에서 작성한 코드의 한계는 바로 데이터와 기능이 분리되어 있다는 점입니다. 음악 플레이어의 데이터는 MusicPlayerData에 있는데 그 데이터를 사용하는 기능은 MusicPlayerMain3에 있는 각각의 메서드에 분리되어 있습니다. 그래서 음악 플레이어와 관련된 데이터는 MusicPlayerData를 사용해야 하고, 음악 플레이어와 관련된 기능은 MusicPlayerMain3의 각 메서드를 사용해야 합니다.
가각의 메서드를 보면 대부분 MusicPlayerData의 데이터를 사용합니다. 따라서 이후에 관련 데이터가 변경되면 MusicPlayerMain3부분의 메서드들도 함께 변경해야 합니다. 그리고 이렇게 데이터와 기능이 분리되어 있으면 유지보수 관점에서도 관리 포인트가 2곳으로 늘어나게 됩니다.
객체 지향 프로그래밍이 나오기 전까지는 지금과 같이 데이터와 기능이 분리되어 있었습니다. 따라서 지금과 같은 코드가 최선이였지만 객체 지향 프로그래밍이 나오면서 데이터와 기능을 하나로 묶어서 사용할 수 있게 되었습니다.
다음에는 데이터와 기능을 하나로 묶는 클레스에 메서드를 도입하는 코딩을 만들어 보겠습니다.
관련된 포스팅 글
'IT관련 정보' 카테고리의 다른 글
Java공부편 - 절차 지향 프로그래밍(2) (0) | 2024.03.01 |
---|---|
Java 공부편 - 절차 지향 프로그래밍(1) (0) | 2024.02.29 |
Java 공부편 - NullPointerException (0) | 2024.02.28 |
Java 공부편 - null (0) | 2024.02.23 |
변수와 초기화 (0) | 2024.02.22 |