ASP.NET 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : [3] DB Layer : Database Abstract Class : DataProvider.cs
글번호: 301
작성자: 레드플러스
작성일: 2008/07/16 오전 10:45:00
조회수: 5684
using System;
using System.Configuration;
using System.Data;

namespace RedPlus.Modules.Memo
{
    /// <summary>
    /// 1. 공급자를 결정 : SQL Server, Access, Oracle
    /// 2. 각각의 클래스에게 멤버 상속 : 추상 클래스
    /// </summary>
    public abstract class DataProvider
    {
        #region 디자인 패턴에 따른 공급자 결정 코드 블록(공식)

        //[1] 필드 : 인스턴스화된 개체에 대한 싱글톤 참조
        private static DataProvider objDataProvider = null;
        //[2] 정적 생성자 : DataProvider.멤버 접근시 호출
        static DataProvider()
        {
            CreateProvider();
        }
        //[3] 정적 메서드 : Web.config에 따른 서로 다른 공급자 호출
        private static void CreateProvider()
        {
            //[a] 네임스페이스명
            string strNamespace = "RedPlus.Modules.Memo.";
            //[b] Type 클래스의 개체 생성
            Type objType;
            //[c] Web.config 파일에 따라서 동적으로 클래스명 지정 : 네임스페이스명 추가
            objType = Type.GetType(strNamespace + ConfigurationManager.AppSettings["DataProvider"].ToString(), true);
            //[d] Activator.CreateInstance()로 동적으로 개체 생성
            objDataProvider = (DataProvider)Activator.CreateInstance(objType);
        }
        //[4] 정적 메서드
        public static DataProvider Instance()
        {
            return objDataProvider;
        }

        #endregion

        // 입력용 추상 메서드
        public abstract void AddMemo(string Name, string Email, string Title, string PostIP);
        // 출력용 추상 메서드
        public abstract IDataReader GetMemos(int Page);
        // 카운트 계산용 추상 메서드
        public abstract int GetTotalMemo();
        // 검색용 추상 메서드
        public abstract IDataReader FindMemos(string SearchField, string SearchQuery);
        // 검색 카운트 계산용 추상 메서드
        public abstract int GetTotalFindMemo(string SearchField, string SearchQuery);
        // 검색 리스트에 대한 추상 메서드
        public abstract IDataReader GetFindMemos(int intPage, string strSearchField, string strSearchQuery);
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 GridView로 리스트 출력시 번호를 순서대로 - 레드플러스 2009-08-13 6611
  [!] 3Tier + Enterprise Library 한줄 메모장(Memo Appl... - 레드플러스 2008-07-16 6305
  [1]한줄메모장 작성을 위한 테이블 및 저장 프로시저 작성 - 레드플러스 2008-07-16 6727
  [2] Visual Studio 2008 Solution Explorer 구성 WebMemoEL.jpg(59 KB) 레드플러스 2008-07-16 5483
현재글 [3] DB Layer : Database Abstract Class : DataPr... - 레드플러스 2008-07-16 5684
  [3][1] SQL Server 전용 DB 처리 : SqlDataProvider.cs - 레드플러스 2008-07-16 6033
  [4] Biz로직 : Entity Class : MemoInfo.cs - 레드플러스 2008-07-16 4683
  [5] Business Layer : Controller Class : MemoCon... - 레드플러스 2008-07-16 5252
  [6] Presentation Layer : UI : RedPlusMemo.ascx - 레드플러스 2008-07-16 7565
  [6][1] RedPlusMemo.ascx.cs - 레드플러스 2008-07-16 4809
다음글 [!] 답변형 게시판 : /WebReply/ - 레드플러스 2008-07-14 5841
 
손님 사용자 Anonymous (손님)
로그인 Home