책 <오브젝트>에서 말하는 객체지향 설계
책 <오브젝트>의 34쪽에서 36쪽을 발췌, 요약한 글입니다.
설계가 왜 필요한가
항상 변경되는 요구사항에 잘 대응하기 위해서 좋은 설계가 필요하다.
우리가 짜는 프로그램은 두 가지 요구사항을 만족시켜야 한다. 우리는 오늘 완성해야 하는 기능을 구현하는 코드를 짜야 하는 동시에 내일 쉽게 변경할 수 있는 코드를 짜야 한다. 좋은 설계란 오늘 요구하는 기능을 온전히 수행하면서 내일의 변경을 매끄럽게 수용할 수 있는 설계다. - <오브젝트> 35p
요구사항은 항상 변경된다. 코드를 변경해야 한다. 버그가 발생할 가능성이 높아진다. 그러니 변경을 수용할 수 있는 설계가 중요하다.
객체지향 설계
객체지향 프로그래밍은 의존성을 효율적으로 통제할 수 있는 다양한 방법을 제공함으로써 요구사항 변경에 좀 더 수월하게 대응할 수 있는 가능성을 높인다.
변경 가능한 코드란 이해하기 쉬운 코드다.
객체지향은 개발자가 세상을 예상하는 방식대로 객체가 행동하리라는 것을 보장함으로써 코드를 좀 더 쉽게 이해할 수 있도록 만든다.
객체지향 세계에서 애플리케이션은 객체들로 구성되며 애플리케이션의 기능은 객체들 간의 상호작용(메시지)을 통해 구현된다.
하지만 단순히 데이터와 프로세스를 객체 안으로 밀어 넣었다고 변경하기 쉬운 설계가 되는 것이 아니다.
애플리케이션의 기능을 구현하기 위해 객체들이 협력하는 과정 속에서 객체들은 다른 객체에 의존하게 된다.
훌륭한 객체지향 설계란 협력하는 객체 사이의 의존성을 적절하게 관리하는 설계다.
'프로그래밍-학습기록 > 객체 지향 프로그래밍' 카테고리의 다른 글
클래스의 내부와 외부를 구분해야 하는 이유는?! (0) | 2021.02.08 |
---|---|
주요 디자인 패턴 (0) | 2021.01.15 |
DI(Dependency Injection)와 서비스 로케이터 (0) | 2021.01.14 |
SOLID 설계 원칙 (0) | 2021.01.11 |
재사용, 상속보다는 조립으로 (0) | 2021.01.07 |