소프트웨어 공부/프로그래밍

최소화된 클래스를 사용하라

야곰야곰+책벌레 2021. 4. 20. 15:03
728x90
반응형

나누고 정복하라.

작은 클래스가 만들기도 쉽고, 얻기도 쉬울 뿐만 아니라 테스트하고 사용하기도 쉬우며, 다양한 상황에서 활용하기에도 편리하다. 다양한 기능을 가진 클래스 대신 간단한 개념을 담은 작은 클래스를 만들어 활용하자. 하나의 클래스에서 복잡하고 완전한 기능을 제공하는 방식은 분명 매력적인 것이 사실이지만, 작은 클래스를 사용하는 것이 대부분의 시스템에 있어 보다 효율적인 이유가 여러 가지 있다.

 

  • 최소화된 클래스는 각각 하나의 명확한 개념만을 포함하므로, 여러 개의 분리된 개념을 포함하는 클래스와는 달리 서로 간의 구분이 쉽다는 장점이 있다.
  • 작은 클래스는 보다 이해하기 쉽고, 사용하기 쉬우며 재활용하기도 쉽다.
  • 작은 클래스는 분산과 배치에도 유리하다. 많은 기능이 집적된 클래스의 경우 별도의 덩치 큰 단위로 사용되는 경우가 많은데, 예를 들어 다양한 기능을 통합한 matrix라는 클래스가 있다면 단순한 계산만을 원하는 사용자가 대부분이라고 해도 특별한 연산을 수행하는 기능 역시 포함하게 될 것이다. 하지만 최소화된 클래스를 통해 각 기능들을 분리한다면 사용자의 필요에 따라 클래스를 나누고 배치하여 보다 효율적인 구성이 가능해진다.
  • 덩치가 큰 클래스는 캡슐화를 약하게 한다. 멤버가 될 필요가 없는 멤버 함수가 많은 클래스라면 private 멤버라고 해도 public 멤버의 특성을 점차 따라게게 되고, 결과적으로 캡슐화는 약해진다.
  • 다양한 기능을 가진 클래스는 문제에 대한 완벽한 해결책을 만드는 과정에서 만들어지는 경우가 많다. 하지만 결국 이러한 해결책은 성공적이지 못하며, 원하는 해결책보다 낮은 수준에 머무르게 된다.
  • 여러 기능과 역할을 가졌기 때문에 오류가 생길 가능성도 크고, 정확하게 만들기 힘들다.
728x90
반응형