저장소 패턴이 ASP.NET 제공자 모델과 동일합니까?
-
05-07-2019 - |
문제
ASP.NET 2.0 이후 제공자 모델이 있습니다. 구현 세부 사항에서, 공급자는 인터페이스가 아닌 추상 클래스 인 PrudiderBase에서 파생 된 클래스이지만 어쨌든 공급자 모델은 Web.config를 편집하여 OUT를 스왑 할 수있는 다른 구현을 가질 수 있도록 제공됩니다. 예를 들어 블로그 앱을 만들면 BlogProvider : ProviderBase가있을 수 있습니다. 그러면 SQLBLOGPROVIDER, OracleBlogProvider 및 MockBlogProvider와 같은 BlogProvider를 구현할 수 있습니다.
이제 리포지토리 패턴이 인기를 얻고 있으며, 구현 세부 사항에서는 일반적으로 인터페이스를 사용하므로 iBlogprovider를 사용하면 속성이 아닌 생성자를 통해 다른 구현을 주입하지만 본질적으로 IN DON 이 두 가지 패턴이 우리에게 준 것에 차이를보십시오.
개인적으로, 나는 공급자 모델이 구현에서 더 자연 스럽다고 생각합니다. 그렇다면 그들 사이에 차이가 있습니까? 아니면 다른 공동체가 제공 한 다른 이름을 가진 것과 동일합니까?
감사합니다. Ray.
해결책
저장소 및 공급자 패턴은 겹치지 만 공식적으로 동일한 것을 설명하지는 않습니다. 저장소는 공급자의 하위 집합이라고 거의 말할 것입니다. 실제로는 저장소 패턴이었다고 생각합니다 쫓겨 난 구체적인 요구 - 개요 저장소 - 커뮤니티에서보다 일반적인 추상화 패턴으로 발전했습니다. 그런 점에서 그들은 같은 개념을 설명하는 다른 용어로 왔습니다. 그러나 원래 정의에서는 범위가 다릅니다.
저장소 패턴의 목적은 저장소 응용 프로그램에서 멀리 떨어진 데이터.
제공자 모델의 목적은 아무것 응용 프로그램에서 멀리 떨어져 있습니다. 이것은 데이터 저장소 일 수 있지만 종종 일종의 논리입니다.
예를 들어, 응용 프로그램에는 ContextFactoryProvider가 있으며, 여기에는 어떤 ContextFactory를 사용할 것인지 결정하기위한 다른 종류의 논리가 포함되어 있습니다. 이 경우 데이터 저장소는 없습니다. 임의로 변경 해야하는 것은 순전히 응용 프로그램 논리입니다. 제공자 모델을 사용하면 사용할 수 있습니다 단일 책임 원칙 각 종류의 논리를 자체 클래스로 분리하고 해당 논리를 쉽게 교체합니다.
다른 팁
REX M과 동의 할 수 없습니다. 제공자 패턴의 목적은 저장소 패턴의 목적으로 의심 할 여지없이 데이터베이스의 세부 사항을 추상화하기위한 지원을 제공하는 초록 인터페이스를 통해 사용자 정의 지원을 제공하는 것입니다.