반응형
- 적절한 객체에게 적절한 책임을 할당하여 서로 메시지를 주고 받으며 협력하도록 하는 것
- 점점 증가하는 SW 복잡도를 낮추기 위해 객체지향 패러다임 대두
- 중요한 두 가지 포인트
1. 클래스가 아닌 객체에 초점을 맞추는 것
2. 객체들에게 얼마나 적절한 역할과 책임을 할당하는가
절차지향 프로그래밍과 객체지향 프로그래밍의 차이
책임이 한 곳에 집중되어 있는 방식인가 → 절차지향
책임이 여러 객체로 적절히 분산되어 있는 방식인가 → 객체지향
High cohesion, loose coupling
- 높은 응집도와 낮은 결합도성격이 다른 것들은 분리를 시키는 것 !
응집도가 높은, 비슷한 것끼리는 하나로 모아두고,
또한 변화가 생겼을 때, 다른 곳에는 영향을 미치지 않는다. - 장점이 무엇일까 ?
변경이 생겼을 때 변경의 포인트가 하나로 집중될 수 있다.
→ 유지보수와의 관련성이 크다.
객체지향 설계를 하는 이유 ?
높은 응집도와 낮은 결합도를 가지고 유지보수 시에 용이하게 만들 수 있기 때문 !
객체지향 설계 순서
- 도메인을 구성하는 객체에는 어떤 것들이 있는지 고민
- 객체들 간의 관계를 고민
- 동적인 객체를 정적인 타입으로 추상화해서 도메인 모델링
- 협력 설계
- 객체들을 포괄하는 타입(클래스)에 적절한 책임을 할당
- 구현
참고 : 객체지향 세계에서는 모든 객체가 능동적인 존재
728x90
반응형