왜 추상화 계층을 만드는가?
1.가독성
- 한번에 한 두개 정도의 계층과 몇개의 개념만 다루면 되기때문에 코드의 가독성이 크게 향상된다.
2.모듈화
- 다른 계층이나 코드의 일부에 영향을 미치지 않고 계층 내에서만 구현을 변경하기가 매우 쉬워짐.
- 다양한 상황에 대처하기 위해 어떤 특별한 작업을 수행할 필요가 없다.
3.재사용성 및 일반화성
- 하위 문제에 대한 해결책이 간결한 추상화 계층으로 제시되면 해당 하위 문제에 대한 해결책을 재사용하기가 쉬워짐.
4.테스트 용이성
- 신뢰할 수 있는 코드를 작성하고자 한다면, 각 하위 문제에 대한 해결책이 견고하고 제대로 작동하는지 확인 해야함.
- 코드가 추상화 계층으로 깨끗하게 분할되면 각 하위 문제에 대한 해결책을 완벽하게 테스트하는 것이 쉬워짐.
코드의 계층
이부분에서 가장 집중해야 할 부분은
클래스의 길이가 너무 길게 되면 앞에서 말한 4가지의 요소에 어긋나기 때문에 되도록이면 하나의 클래스는 한가지의 일만 하는게 좋다고 하는게 핵심인것 같다.
요약
- 코드를 깨끗하고 뚜렷한 추상화 계층으로 세분화하면 가독성, 모듈화, 재사용, 일반화 및 테스트 용이성이 향상된다.
- 특정 언어에 국한된 기능뿐만 아니라 함수, 클래스 및 인터페이스를 사용하여 코드를 추상화 계층으로 나눌 수 있다.
- 코드를 추상화 계층으로 분류하는 방법을 결정하려면 해결 중인 문제에 대한 판단과 지식을 사용해야 한다.
- 너무 비대한 계층 때문에 발생하는 문제는 너무 얇은 계층 때문에 발생하는 문제보다 더 심각하다. 확실하지 않은 경우에는 남용의 위험에도 불구하고 계층을 얇게 만드는 것이 좋다.