2009-05-28 6 views
0

OO 원칙을 유지하기 위해 노력하는 동안 모든 것이 너무 인위적이거나 부자연스럽게 보입니다.웹 응용 프로그램이 실제로 객체 지향적 일 수 있습니까?

+0

정교하게하시기 바랍니다. – DevinB

+2

아니면 실제 질문을하는 것이 좋습니다. – cgp

+1

나는 나의 코멘트가 실제로 꽤 모호하다는 것을 깨달았다 (아이러니 한 아이러니). 귀하의 OO 코드가 어떤 방식으로 고안되었거나 부 자연스러운 것으로 보입니까? 어떤 디자인 패턴을 사용하려고하며 어떻게 실패하고 있습니까? – DevinB

답변

4

상태 정보를 유지하기위한 구조로 객체를 생각하면 "객체 지향"의 정의는 웹 요청의 무국적 속성에 의해 부담이됩니다. 그러나 상태 비 저장 객체는 여전히 객체이며 웹 응용 프로그램은 해당 환경 내에서 객체 지향 설계 원리를 따를 수 있습니다.

+0

예, 이것이 제가 의미했던 것입니다. – zsharp

5

제 조언은 OO 원칙에 관해 너무 독단적이지 않아야한다는 것입니다. 그것들은 잘 작동하지만 때로는 사람들이 OO 원칙을 유지하기 위해 노력하고 있다고 말하면 실제로는 적절하지 않을 때에도 모든 것을위한 수업을 만들고 있다는 것을 의미 할 수 있습니다. 수학적 배경을 가진 사람이 부자연 스럽다고 생각할지라도 "x = 3"과 같은 것은 자연스럽지 않습니다.

기존 OO 웹 앱과 디자인 패턴을 살펴볼 수도 있습니다. 일반적인 객체 지향 디자인 패턴은 Ruby on Rails와 Django가 지원 (거의 시행)되는 MVC 패턴입니다. MVC를 검색하십시오.

+0

원래의 OO-MVC는 GUI에서만 의미가 있지만,보다 일반적인 웹 MVC는 OO보다 계층화되어 있습니다. – Javier

+0

하비에르 (Javier), 레이어링과 관련하여이 부분을 자세히 설명해 주시겠습니까? – zsharp

+1

GUI-MVC (SmallTalk에서 널리 사용됨)는 모듈 형 및 OOP였습니다. 각 모듈에는 세 개의 객체가 밀접하게 결합되어 필요시 인스턴스화 된 단일 모듈을 형성합니다. web-MVC, OTOH는 오브젝트가 아닌 3 개의 레이어로, 각 파트는 일부 부분 (저장, 표현 및 제어 흐름)에 대한 더 높은 수준의 액세스를 제공하기 위해 일부 측면을 추상화합니다. 그들은 더 큰 하위 시스템으로 구성되지 않고 시각적 인 요소를 나타내지 않고 함께 전체 앱 (또는 하위 애플리케이션)을 관리합니다. 전혀 다른 것, 아마도 철학적 인 수준에서만 관련이있을 수 있습니다. 디자인 수준이 아닙니다. – Javier

관련 문제