싱글 톤 패턴은 DAL에 매우 좋습니다. 저는 자체 엔터프라이즈 웹 응용 프로그램 (수백 명의 사용자와 20 개의 싱글 톤 클래스에서 2,000 가지 이상의 메서드)에서이 패턴을 사용합니다. 연결 풀링은 실제로 ado.net과 SQL Server 자체에서 가장 잘 처리됩니다. 여러 유형의 백엔드 서버를 원할 경우 문제가되지 않습니다. 싱글 톤 패턴이 있더라도 매개 변수, 텍스트/프로 시저 이름, 자격 증명/연결 문자열을 모두 전달한 상태에서 데이터베이스에 직접 호출하는 세부 사항을 처리하는 중앙 집중식 데이터 액세스 클래스가 필요할 수 있습니다.
제 경우에는 단일 데이터베이스의 각 프로 시저가 데이터베이스의 저장 프로 시저와 1 : 1에 해당합니다. 이것은 기본적으로 각 저장 프로 시저에 대한 C# "프런트 엔드"훅을 만들어서 구문 론적으로 말하면 네이티브 C# 코드와 거의 비슷하게 호출 할 수 있습니다. DAL에 대한 전화는 매우 간단합니다. 문제의 SP가 엄청나게 많아서 싱글 톤이 여러 개 있습니다. 각 SP에는 Development_ 또는 Financial_ 또는 Organization_ 또는 기타와 같은 접두사가 있습니다. 그런 다음 Development, Financial 또는 Organization과 같은 각각에 해당하는 싱글 톤 클래스를가집니다. 따라서 Sp_ Organization_ViewData는 C#에서 Organization이라는 이름의 싱글 톤 클래스에 대해 ViewData라는 메소드가됩니다.
물론 그 방법 중 하나 일 뿐이지 만 지난 6 년 동안 여러 개발자와 많은 양의 코드에서 잘 작동하는 것으로 나타났습니다. 중요한 점은 일관성이 중요하다는 것입니다. 프론트 엔드 프로그래머가 싱글 톤 중개자 중 한 곳에서 메소드의 이름을보고 있다면, 데이터베이스 끝 부분으로가는 곳을 정확하게 알려줘야합니다. 그렇게하면 문제가 있거나 누군가 코드를 검색하여 코드를 이해하려고하면 코드를 추적 할 필요가 줄어 듭니다.
어떻게 싱글 톤 패턴으로 트랜잭션을 관리 했습니까 ?? – Novice
나는 거래에 관해 이야기하기 위해 다른 단락을 추가했다. –
그러나 응용 프로그램에서 단일 DAL 개체를 공유하는 경우 ADO.net의 연결 풀을 사용할 수있는 방법은 단일 DAL 개체가 언제든지 하나의 연결 만 필요하기 때문입니다. – Novice