2010-07-01 2 views
5

내가 본 DCI의 모든 예는 정보의 궁극적 인 소유자로서 객체에 기반한 것으로 보이며 트랜잭션 경계는 메소드 내에 정의됩니다.DCI (데이터, 컨텍스트, 상호 작용) 지속성 예제

퍼시스턴스 애플리케이션의 예를 보려고합니다. 퍼시스턴스 계층이 있습니다. 즉, 기본 퍼시스턴스 스토리지의 중복 객체 복사본이있을 수 있으며, 객체 변경이 사본은 나중에 유지됩니다. DCI는 그 모델에 대해 전혀 작동합니까?

+0

을 사용하여 구현됩니다. OO로 구현할 수있는 모든 응용 프로그램은 DCI로 구현할 수 있습니다. DCI는 OO를 수행하지만 OO를 수행하는 방법에 대한 제약을 적용합니다. 즉, 퍼시스턴스 레이어에는 오브젝트가없고, 퍼시스턴스 레이어에 클래스가 있고, 동일한 정보를 나타내는 여러 오브젝트가 있습니다. DCI는 수업에 관심이 없으며 (언어 기능 임) 동일한 결과가 나오는 것에 대한 서로 다른 표상의 동기화는 부작용을 받아들이는 모든 패러다임에 대한 문제입니다. (또한 다양한 방법으로 해결할 수 있습니다) –

답변

2

DCI는 지속성과 관련이 없습니다.

+0

무엇을 그게 무슨 뜻이야? DCI는 상관 관계가 없으므로 DCI가 해당 범위를 벗어났습니다. 아니면 DCI가 해결하지 못하는 유효한 관심사입니까? – nilskp

+2

지속성은 항상 유효한 관심사이지만 DCI는 아키텍처보다 패러다임입니다. 그래서 저는 그것이 직각이라고 생각합니다. DCI는 데이터에 관해 많은 것을 말하고 있지만, 어디에서오고 어디서 오는지는 그리 많지 않습니다. 지속성 데이터는 사용자가 메뉴에서 파일/저장을 선택할 때 시작되는 유스 케이스라는 의미에서 지속 레이어에서 DCI를 사용할 수도 있습니다. – Guge

3

DCI는 패러다임이며 퍼시스턴스가있는 다른 패러다임을 사용하여 응용 프로그램을 빌드 할 수있는 것처럼 (지속성이 부작용이므로 순수 FP를 실행하므로) DCI를 사용할 수 있습니다. 그것은 패러다임에 대한 관심사가 아니며 패러다임을 이해하는 것과 관련이 없으므로 DCI 예제에서는 언급하지 않았습니다. (그것은 당신이 질문을 한 첫 번째가 아니며 내가 확신하는 마지막 것이 아닐 것이라고 말했습니다.)

지속되는 데이터에 대한 우려는 일반적으로 DCI와 직결됩니다. DCI는 시스템이 시스템이

첫 번째는 도메인 모델이고 두 번째는 시스템의 기능입니다 무엇을

  • 무엇

    • 에 디자인을 분할하려고합니다. "시스템이 무엇"이든 상관없이 플랫 파일 또는 DB는 물론 중요하지만 별도의 관심사이며 일반적으로 restricted OO

  • +0

    당신이 말하는 것은 의미가 있습니다. 그러나 나는 그것이 너무 자주 자란 이유는 예를 들어, Artima 기사에는 트랜잭션 경계를 명시 적으로 사용합니다. 이것은 끈기에 관한 무언가를 의미하며, 그로 인해 사람들은 질문을 떠납니다. – nilskp

    +0

    @nilskp가 동의하고 OO가 제한된 부분이 있습니다. 대부분의 DCI 예는 간결성을 위해 제한된 OO 부분을 생략합니다. DCI를 예제보다 낮은 수준으로 사용하는 경향이 있기 때문에이 예제들 중 몇 가지와 다른 보트를 타고 있습니다. Guge가 주석에서 언급 한 것처럼 저는 지속성 "계층"에서 DCI를 사용할 수 있습니다. –