인터페이스

이 코드 구성 요소는 여러 타입에 적용되는 행동을 정의하는 역할과 그 여러 타입을 사용하는 클래스들의 관심의 초점을 나타내는 역할의 두 가지 역할이 있습니다.
구현 보다는 인터페이스에 의존하도록 코딩하는 것이 소프트웨어를 확장이 용이하게 합니다.

캡슐화

객체의 행동 변화에 필요한 코드변경을 국한하여, 어떤 객체지향 월리보다도 유지보수에서 생기는 문제를 막는 책임을 지고 있습니다.
캡슐화는 여러분의 클래스를 불필요한 변경으로부터 보호 합니다.
변화의 가능성이 있다고 생각되는 프로그램의 기능이 있을 때, 그 기능을 자주 변하지 않을 부분과 분리해야 합니다. 즉, 변경하는 것을 캡슐화하려는 노력이 항상 필요합니다.

변경이란?

소프트웨어에서 변하지 않는 진리는 소프트웨어는 변한다는 것입니다.
여러분의 소프트웨어를 변경에 잘 견디도록 만드는 가장 쉬운 방법은 각 클래스가 변경의 이유를 하나만 갖도록 하는 것입니다. 클래스 안의 변경 요인을 줄여서 변경 가능성을 최소화하는 것입니다.

 

객체지향 원리

  1. 변하는 것을 캡슐화하라.
  2. 구현에 의존하기 보다는 인터페이스에 의존하도록 코딩하라.
  3. 각 클래스는 변경 요인이 오직 하나여야 한다.

 

핵심 정리

  • 추상 클래스는 실제 구현 클래스를 위한 저장 장소 입니다.
  • 추상 클래스는 기능(behavior)을 정의하고, 그 기능은 서브 클래스가 구현합니다.
  • 두 개 이상의 클래스에서 공통된 행동(기능)을 발견할 때마다, 그 행동을 하나의 클래스로 추상화하여 그 행동(기능)을 재사용하도록 하세요.
  • 소프트웨어가 잘 설계되었는지 알아보는 가장 좋은 방법 중의 하나는 사용해 보고 수정해 보는 것입니다.

 

 

 

 

 

'Programs > OOAD' 카테고리의 다른 글

6. 큰 문제들 해결하기  (3) 2012.09.22
5-2. 좋은 디자인 = 유연한 소프트웨어  (0) 2012.09.22
4. 분석  (0) 2012.09.19
3. 요구사항 변경  (2) 2012.09.18
2. 요구사항 수집  (4) 2012.09.17
Posted by outliers
,