2012-06-25 3 views
2

제 질문은 철학적 문제가 아니라 방법론 중 하나입니다. 나는 잘 입증 된 'car'객체와 같은 일상적인 프로세스와 객체를 모방하는 소프트웨어를 어떻게 개발하는지 이해합니다. 제 질문은 덜 구체적인 것에 관한 것입니다. 예를 들어, 데이터베이스에서 제품과 가격을 반환하는 검색 응용 프로그램을 빌드하는 경우 (훨씬 더 큰 응용 프로그램의 일부로), 이것이 실생활에서 어떻게 구현 될지 상상할 수 있습니까? 예를 들어 실제 인간의 검색 에이전트를 모방 한 코드의 '검색 에이전트'객체 (속성 및 메소드 생성)는 무엇입니까? 본질적으로, 무언가가 명백한 실재 대응 물을 가지고 있지 않다면, 우리는 그것을 생각할 수 있도록 그것의 표현을 만들고 그것을 표현할 수 있습니까? 어떻게하면 응용 프로그램에서 너무 많은 것을 모방하지 않는 객체에 대해 어떻게 생각해야합니까?겉으로보기에 객관적인 아이디어로 객체 지향 소프트웨어를 어떻게 만들 수 있습니까?

모든 입력 해 주셔서 감사합니다.

+2

개체는 해당 데이터에서 작동하는 데이터 및 메서드 모음을 나타냅니다. 비록 그것이 논리적이고 쉽게 따라 할 수는 있지만, 당신이 먼 길을 가도록 하겠지만, 구체적이어야한다는 것은 없습니다. 실제 코드는 내가 코딩 한 것의 약 95 %가 존재하지 않습니다. –

+0

실제 용량과 유사하지 않은 일부 코드의 예를 일부 공유 하시겠습니까? – KiloJKilo

답변

3

개체 지향 디자인은 실제 개체를 모방하지 않습니다.

문제 도메인에 대한 개체를 추상화하는 방법에 대한 게이 지침입니다. 좋은 시작이지만보다 추상적 인 문제 영역에는 충분하지 않습니다.

기본 아이디어는 데이터 및 동작에 따라 문제가되는 도메인 내의 다른 유닛에서 추출 할 수있는 유닛을 추상화하는 것입니다.

3

아니요, 개체는 개념 단위입니다.

실제 생활 객체는 객체 지향 아이디어를 소개하는 데 사용되지만 객체는 "실제"물건과 일치 할 필요가 없으며 실생활과 동등한 추상 개념에도 해당됩니다.

1

기능, 입력 및 출력을보십시오. 수행 할 작업을 찾으십시오 (예 : 데이터 검색, 데이터 처리 및 논리 테이블 작성, 데이터 표시). 이러한 작업을 작지만 비슷한 작업으로 나눌 수 있습니다. 예를 들어 서버에 연결 작업. 요청을 파싱하여 작업을 보내는 요청입니다. 가장 작은 조각으로 목표를 세분화 한 다음이 작은 함수와 데이터 멤버를 클래스에 넣을 수 있습니다.

관련 문제