Hammer's Blog

객체지향 프로그래밍

개요

이 글은 개인적으로 생각할 때, 코드를 짜는 원칙에 대한 정리이다. 이 원칙들은 우선적으로 공리라고 여기며 코드를 짠다. 대부분의 개념은 조영호 님의 저서인 오브젝트에 많은 영향을 받았다.

주요 개념

응집력과 결합도

소프트웨어 공학에서 통용되는 개념이지만, 이는 객체지향에서도 중요하다. 구조는 응집력이 높고, 결합도가 낮을 때 안정적이다.

객체 사이의 의존성이 높은 경우 결합도(Coupling)가 높다고 말한다. 의존성이라는 말 속에는 어떤 객체가 변경될 때 그 객체에게 의존하는 다른 객체도 함께 변경될 수 있다는 사실이 내포되어 있다.

응집력은 객체 하나가 변경될 때 같은 모듈의 객체가 얼만큼 변경되는지에 대한 척도다. 특정 도메인에 연관된, 같은 모듈에서의 객체들만 변경될 때 이를 응집력이(Cohesion) 높다고 표현한다.

의인화

객체가 마치 살아

원칙

1. 단위 테스트 가능하게 짜라

2. Helper, Util 과 같은 객체가 능동적인

결론

#OOP