OOD의 첫 번째 단계는 무엇입니까?OOD의 첫 번째 단계는 무엇입니까?
답변
실습, 더 광범위하게 연습하십시오.
특히 접근 방식에 대해 검토하고 의견을 말하십시오.
독서는 OOD뿐만 아니라 다른 사람들이 일반적인 문제에 접근 한 방법을 보여주는 패턴을 포함해야합니다.
단계가 없으며 프로세스가 아닙니다.
몇 가지 예비 단계가 있습니다
-
이
- (일반적으로) OOD 이해 은 당신이
내가 다음 혼합물을 사용하여 사용할 수있는 등 O/S, 라이브러리, 프레임 워크를 알고 :
하향식 : 어떤 API를 (객체 인터페이스) 나 응용 프로그램을 구현하기 위해이 (다음, 그 API를 개발할)하고자하는 부품과 결정
상향식 : 새로운 메소드와 새로운 유형의 객체를 추가하고 (때로는 큰 객체를 여러 개의 작은 객체로 분할 할 때) 기존 API (객체 인터페이스)에 새로운 기능을 추가하는 방법을 결정하십시오.
많은 연습이 필요합니다. 가장 먼저 할 일은 객체가 작동하는 방식에 대해 마음을 얻는 것입니다. 특히 절차 적 프로그래머 인 경우 특히 그렇습니다.
많은 작은 개체를 만드는 연습 - 너무 많은 개체가있는 시스템을 본적이 없습니다. 그것은 가능하지만 나는 그것을 본 적이 없다. 많은 오브젝트를 하나의 오브젝트에 넣어야 할 때 정말 분명해야하지만, 오브젝트를 분해해야 할 때 명확하지 않습니다.
개체를 요청하여 데이터를 요청하지 마세요. 게터와 세터를 피하고 데이터로 무엇인가를하도록 요구하는 방법에 집중하십시오. 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 년 후 나는 되돌아보고 무식 함을 깨닫습니다. 나는 ~였다.
OOD의 첫 번째 단계는 OOD 원칙입니다. The Principles of OOD을 확인하십시오.
첫 번째 단계는 객체 지향 분석입니다. 목표는 시스템을 구성하는 객체를 식별하고 상호 작용하는 방법입니다. 이러한 지식을 바탕으로 객체의 동작 (인터페이스 메소드)과 내부 (객체의 필수 데이터 멤버)를 지정할 수 있습니다.
설계 프로세스는 여러 가지 다이어그램을 생성합니다.
처음으로 '사용 사례'세트가 있습니다. 유스 케이스는 시스템에서 구현 한 시나리오의 구두 설명입니다 (하나는 가장 많이 선택해야 함). 실질적인 것들); 이것들은 시스템의 클래스에 맵핑되어야하는 주요 액터와 개념을 식별하는 데 사용됩니다. 이러한 이해는 '객체 상호 작용 다이어그램', '클래스 다이어그램'및 '시퀀스 다이어그램'을 작업함으로써 정교 해집니다. 상태 차트는 시각적 상태 시스템에 사용되는 경우가 있습니다.이 다이어그램은 시스템을 더 잘 이해할 수있는 도구이므로 결과적으로 클래스 헤더 파일/클래스 정의를 작성하는 시스템을 충분히 이해해야합니다. 이 다이어그램 중 하나가 먼저 나오는 고정 된 규칙은 없으며 적절하게 사용됩니다.
나는 매우 유용한 다음과 같은 책을 발견 : 그래 디 부치에 의해객체 지향 분석 및 응용 프로그램과 디자인 (2 판)를
책이 단계에서 몇 가지 예를 들어 시스템 단계를 설계하는 과정 (통과 나는이 예제 시스템을위한 설계 과정을 읽는 것으로 충분하다고 생각한다.) 하나의 사소한 문제는이 책에서 사용 된 표기법이 조금 날짜가 있다는 것입니다. 현대적인 실습은 다이어그램에 UML 표기법을 사용하는 것이지만 책은 여전히 이전 Booch 표기법을 사용합니다. 이 책의 장점은 구체적인 예를 통해 각 개념을 설명한다는 것입니다.
- 1. 첫 번째 단계는
- 2. Django/Python 2.7부터 시작하기위한 첫 번째 단계는 무엇입니까?
- 3. 해당 환경에서 유용한 인식 프로그램을 향한 첫 번째 단계는 무엇입니까?
- 4. JSP - 내 PC에서 JSP 페이지를 제공하는 첫 번째 단계는 무엇입니까?
- 5. rspec의 첫 번째 단계는 /lib/app_name/blah.rb의 메소드를 테스트하려고합니다.
- 6. 첫 번째
- 7. 첫 번째 항목으로 그룹화
- 8. 루프는 첫 번째 반복
- 9. 첫 번째 발생시 분할
- 10. 현지화 - 첫 번째 단계
- 11. 첫 번째 활동에서 네 번째 활동까지의 정보
- 12. 첫 번째 응답자로보기
- 13. 첫 번째 기회 예외
- 14. 루프가 첫 번째 반복
- 15. 첫 번째 글자로 그룹화
- 16. 첫 번째 댓글의 제목
- 17. 화면 첫 번째 라인은
- 18. 내 첫 번째 모델보기
- 19. 첫 번째 부스트 프로그램
- 20. 첫 번째 Android 앱
- 21. UITable 첫 번째 섹션에는
- 22. 첫 번째 예외 프로그램
- 23. 첫 번째 단어 선택기
- 24. 장고 첫 번째 프로젝트
- 25. 첫 번째 안드로이드 서비스
- 26. 쿼리 .... 첫 번째 반복
- 27. 첫 번째 in .Net
- 28. 파일의 첫 번째 줄만 읽으시겠습니까?
- 29. 빌드 프로세스의 단계는 무엇입니까
- 30. 다음 단계는 무엇입니까?
좀 더 구체적으로 말씀해주십시오. 문제가있는 도메인은 무엇입니까? 이미 뭘 안다고? – Jacob