코딩 방법론 - 모듈화

하이루·2022년 1월 19일
0
post-custom-banner

모듈화의 필요성을 느꼈던 부분


......

    private fun createCountDownTimer(initialMillis: Long) =
        object : CountDownTimer(initialMillis, 1000L) {
            // 반환하려는 CountDownTimer는 추상클래스이므로 구현해야될 메소드가 존재한다. 
            // -> 따라서 object를 이용해서 익명 클래스로 구현하여 반환하는 것이다.

            override fun onTick(millisUntilFinished: Long) {
                updateRemainingTime(millisUntilFinished)
                updateSeekBar(millisUntilFinished)

            }

            override fun onFinish() {

                completeCountDown()
                // 모듈화

            }
        }


    private fun completeCountDown() {
        updateRemainingTime(0)
        updateSeekBar(0)

        soundPool.autoPause()

        bellSoundId?.let {
            soundPool.play(it, 1f, 1f, 0, 0, 1f)
        }
    }
    
......    

코딩에 대한 방법론 - 모듈화

위의 onFinish()메소드의 내용이 너무 많았기 때문에 아래와 같이 모듈화 시켜서 넣어줬다.

이와 같은 방식으로 모듈화 시켜주는 것이 나중에 가독성을 매우 크게 높일 수 있다.

그리고 지금 아래에 모듈화 시킨 것을 보면 그 위치가 추상클래스를 구현하는 영역임을 알수 있는데, 이처럼 메소드는 어디에서든지 정의할 수 있다는 것을 명심하고 있자

따라서 모듈화를 습관화해서 코드의 가독성을 높이는 노력을 하자

모듈화 했을 때의 장점??

아래 꼭 읽어볼 것 !!!!!!!!!!!

예를 들어 위의 onFinish()함수는 오버라이드하는 함수 ( 즉, 대체되지 않고 고유한 기능을 수행하는 함수이다. )
이런 오버라이드하는 함수의 경우 코드의 구성 파악에 있어서 핵심이며, 코드의 흐름에 큰 방향성을 제시한다.

따라서 이런 함수의 내부에 복잡한 코드들이 즐비해서 가독성을 떨어뜨리는 짓은 옮지 못하며,
그래서 위와 같이 모듈화 시켜준 뒤, 오버라이드 함수의 내부에는 그냥 모듈명 한줄만 써주는 것이 바람직하다. ( 코드의 흐름을 읽기 매우 편해진다. )

profile
ㅎㅎ
post-custom-banner

0개의 댓글