문제

ASP.NET 2.0 이후 제공자 모델이 있습니다. 구현 세부 사항에서, 공급자는 인터페이스가 아닌 추상 클래스 인 PrudiderBase에서 파생 된 클래스이지만 어쨌든 공급자 모델은 Web.config를 편집하여 OUT를 스왑 할 수있는 다른 구현을 가질 수 있도록 제공됩니다. 예를 들어 블로그 앱을 만들면 BlogProvider : ProviderBase가있을 수 있습니다. 그러면 SQLBLOGPROVIDER, OracleBlogProvider 및 MockBlogProvider와 같은 BlogProvider를 구현할 수 있습니다.

이제 리포지토리 패턴이 인기를 얻고 있으며, 구현 세부 사항에서는 일반적으로 인터페이스를 사용하므로 iBlogprovider를 사용하면 속성이 아닌 생성자를 통해 다른 구현을 주입하지만 본질적으로 IN DON 이 두 가지 패턴이 우리에게 준 것에 차이를보십시오.

개인적으로, 나는 공급자 모델이 구현에서 더 자연 스럽다고 생각합니다. 그렇다면 그들 사이에 차이가 있습니까? 아니면 다른 공동체가 제공 한 다른 이름을 가진 것과 동일합니까?

감사합니다. Ray.

도움이 되었습니까?

해결책

저장소 및 공급자 패턴은 겹치지 만 공식적으로 동일한 것을 설명하지는 않습니다. 저장소는 공급자의 하위 집합이라고 거의 말할 것입니다. 실제로는 저장소 패턴이었다고 생각합니다 쫓겨 난 구체적인 요구 - 개요 저장소 - 커뮤니티에서보다 일반적인 추상화 패턴으로 발전했습니다. 그런 점에서 그들은 같은 개념을 설명하는 다른 용어로 왔습니다. 그러나 원래 정의에서는 범위가 다릅니다.

  • 저장소 패턴의 목적은 저장소 응용 프로그램에서 멀리 떨어진 데이터.

  • 제공자 모델의 목적은 아무것 응용 프로그램에서 멀리 떨어져 있습니다. 이것은 데이터 저장소 일 수 있지만 종종 일종의 논리입니다.

예를 들어, 응용 프로그램에는 ContextFactoryProvider가 있으며, 여기에는 어떤 ContextFactory를 사용할 것인지 결정하기위한 다른 종류의 논리가 포함되어 있습니다. 이 경우 데이터 저장소는 없습니다. 임의로 변경 해야하는 것은 순전히 응용 프로그램 논리입니다. 제공자 모델을 사용하면 사용할 수 있습니다 단일 책임 원칙 각 종류의 논리를 자체 클래스로 분리하고 해당 논리를 쉽게 교체합니다.

다른 팁

REX M과 동의 할 수 없습니다. 제공자 패턴의 목적은 저장소 패턴의 목적으로 의심 할 여지없이 데이터베이스의 세부 사항을 추상화하기위한 지원을 제공하는 초록 인터페이스를 통해 사용자 정의 지원을 제공하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top