적어도 필자는 콘텐츠 공급자와 SQLite 데이터베이스에 직접 액세스하는 기본적인 차이점을 알고 있습니다. 내 응용 프로그램에 작동하는 프로토 타입이 있고 현재는 데이터베이스에 직접 연결됩니다. Content Provider 패턴을 사용한 경험이 없지만 다른 응용 프로그램과 일부 데이터를 공유해야한다는 것을 알았습니다.콘텐츠 공급자 vs 직접 데이터베이스 액세스 (트랜잭션 관리)
12 개 정도의 테이블 중 약 2 개만 공유하므로 콘텐츠 공급자 패턴을 따르기 위해 데이터 레이어를 완전히 다시 실행해야하는지 또는 콘텐츠 공급자를 통해 해당 테이블 만 노출해야하는지 궁금합니다. 다른 응용 프로그램을 위해 여전히 기본 응용 프로그램의 데이터베이스에 직접 액세스 할 수 있습니다.
필자의 프로토 타입과 관련하여 겪었던 문제점 중 하나는 상당히 복잡한 트랜잭션이 있었고, 코드를 작성하기 위해 작성한 코드가 특별히 잘 설계되지 않았고 전혀 재사용 할 수 없다는 것입니다. 이 앱에 더 많은 기능을 추가함에 따라 필자는 직접 작성하기 전에 더 나은 데이터 액세스 레이어를 설계해야 할 것입니다. 이미 이런 유형의 디자인 패턴을 가진 훌륭한 리소스를 알고 있습니까? 또한 콘텐츠 공급자 경로를 사용해야하는 경우 데이터베이스 트랜잭션을 안전하게 제어 할 수 있습니까?
감사합니다. 그리고 패턴을 만족시키기 위해 콘텐츠 제공 업체를 사용할 이유가 없다는 데 동의합니다. 사실 데이터베이스에 직접 액세스하는 것도 완벽하게 실행 가능한 패턴입니다. 좀 더 조사한 후에 ContentProvider가 여러 API 호출에서 트랜잭션을 관리 할 수없는 것 같습니다 (http://www.mail-archive.com/[email protected]/msg42281.html). 핵심 애플리케이션 내에서 직접 액세스 할 수 있도록 필요한 콘텐츠를 표시하기 위해 ContentProvider를 추가합니다. – Mike