2010-05-24 5 views

답변

2

실습, 더 광범위하게 연습하십시오.

특히 접근 방식에 대해 검토하고 의견을 말하십시오.

독서는 OOD뿐만 아니라 다른 사람들이 일반적인 문제에 접근 한 방법을 보여주는 패턴을 포함해야합니다.

4

단계가 없으며 프로세스가 아닙니다.

0

몇 가지 예비 단계가 있습니다

  • (일반적으로) OOD 이해
  • 은 당신이

내가 다음 혼합물을 사용하여 사용할 수있는 등 O/S, 라이브러리, 프레임 워크를 알고 :

  • 문제/응용 프로그램 도메인을 이해 (기능 명세)
  • 는 높은 수준의/건축 디자인을 가지고 하향식 및 상향식 (bottom-up) 개발 :

    • 하향식 : 어떤 API를 (객체 인터페이스) 나 응용 프로그램을 구현하기 위해이 (다음, 그 API를 개발할)하고자하는 부품과 결정

    • 상향식 : 새로운 메소드와 새로운 유형의 객체를 추가하고 (때로는 큰 객체를 여러 개의 작은 객체로 분할 할 때) 기존 API (객체 인터페이스)에 새로운 기능을 추가하는 방법을 결정하십시오.

  • 2

    많은 연습이 필요합니다. 가장 먼저 할 일은 객체가 작동하는 방식에 대해 마음을 얻는 것입니다. 특히 절차 적 프로그래머 인 경우 특히 그렇습니다.

    많은 작은 개체를 만드는 연습 - 너무 많은 개체가있는 시스템을 본적이 없습니다. 그것은 가능하지만 나는 그것을 본 적이 없다. 많은 오브젝트를 하나의 오브젝트에 넣어야 할 때 정말 분명해야하지만, 오브젝트를 분해해야 할 때 명확하지 않습니다.

    개체를 요청하여 데이터를 요청하지 마세요. 게터와 세터를 피하고 데이터로 무엇인가를하도록 요구하는 방법에 집중하십시오. oa = o.b + oc 또는 o.setA (o.getB() + o.getC()와 같은 코드를 본적이 없다면 잘못하고있는 것입니다.)

    반복적으로 코드를 다시 작성하십시오. 아무도 없을 때까지 (또는 가능한 한 적게). 이것은 다른 연습보다 당신의 OO 설계 기술에 더 많은 도움이 될 것입니다.보다 지식이 많으면 이전에 리팩터링 할 수 있다고 생각하지 않은 것을 리팩터링 해보십시오. 아마도 패턴처럼 리팩토링 될 수 있습니다.예를 들어 여기에 아주 기본적인 예 - 당신이처럼 보였다 코드의 라인이 있다면 :

    a = b + c * d; 
    g = h + i * d; 
    

    기회는 그것이 박쥐 그것처럼 보이지 않는 경우에도 코드에서 누락 거대한 리팩토링가됩니다. 당신은 아마도 a, b, c를 보유 할 객체를 잃어 버렸을 것이며, 두 번째 인스턴스는 g, h, i를 보유하게 될 것입니다. 이러한 객체를 생성 한 후에는 새로운 객체에 영향을 줄 것입니다. 이와 같은 새로운 기회를 인식하는 것이 중요합니다.

    저는 20 년 이상 프로그래밍을 해왔으며, 그 중 절반 이상은 이미 OO였으며, 몇 년이 지나면 모든 것을 알고 있다고 생각합니다. 1 년 후 나는 되돌아보고 무식 함을 깨닫습니다. 나는 ~였다.

    1

    첫 번째 단계는 객체 지향 분석입니다. 목표는 시스템을 구성하는 객체를 식별하고 상호 작용하는 방법입니다. 이러한 지식을 바탕으로 객체의 동작 (인터페이스 메소드)과 내부 (객체의 필수 데이터 멤버)를 지정할 수 있습니다.

    설계 프로세스는 여러 가지 다이어그램을 생성합니다.

    처음으로 '사용 사례'세트가 있습니다. 유스 케이스는 시스템에서 구현 한 시나리오의 구두 설명입니다 (하나는 가장 많이 선택해야 함). 실질적인 것들); 이것들은 시스템의 클래스에 맵핑되어야하는 주요 액터와 개념을 식별하는 데 사용됩니다. 이러한 이해는 '객체 상호 작용 다이어그램', '클래스 다이어그램'및 '시퀀스 다이어그램'을 작업함으로써 정교 해집니다. 상태 차트는 시각적 상태 시스템에 사용되는 경우가 있습니다.이 다이어그램은 시스템을 더 잘 이해할 수있는 도구이므로 결과적으로 클래스 헤더 파일/클래스 정의를 작성하는 시스템을 충분히 이해해야합니다. 이 다이어그램 중 하나가 먼저 나오는 고정 된 규칙은 없으며 적절하게 사용됩니다.

    나는 매우 유용한 다음과 같은 책을 발견 : 그래 디 부치에 의해

    객체 지향 분석 및 응용 프로그램과 디자인 (2 판)를

    책이 단계에서 몇 가지 예를 들어 시스템 단계를 설계하는 과정 (통과 나는이 예제 시스템을위한 설계 과정을 읽는 것으로 충분하다고 생각한다.) 하나의 사소한 문제는이 책에서 사용 된 표기법이 조금 날짜가 있다는 것입니다. 현대적인 실습은 다이어그램에 UML 표기법을 사용하는 것이지만 책은 여전히 ​​이전 Booch 표기법을 사용합니다. 이 책의 장점은 구체적인 예를 통해 각 개념을 설명한다는 것입니다.