더북(TheBook)

2.   Dul.Data 프로젝트에 전체 솔루션에서 공통으로 사용할 제네릭 인터페이스인 IBreadShop.cs 파일을 만들고, 다음과 같이 코드를 작성합니다.

//IBreadShop.cs 
using System.Collections.Generic; 

namespace Dul.Data 
{ 
    ///<summary> 
    ///제네릭 인터페이스: 공통 CRUD 코드 => BREAD SHOP 패턴 사용 
    ///</summary> 
    ///<typeparam name="T">모델 클래스</typeparam> 
    public interface IBreadShop<T> where T : class 
    { 
        ///<summary> 
        ///상세 
        ///</summary> 
        T Browse(int id); 

        ///<summary> 
        ///출력 
        ///</summary> List<T> Read(); 

        ///<summary> 
        ///수정 
        ///</summary> 
        bool Edit(T model); 

        ///<summary> 
        ///입력 
        ///</summary> 
        T Add(T model); 

        ///<summary> 
        ///삭제 
        ///</summary> 
        bool Delete(int id); 

        ///<summary> 
        ///검색 
        ///</summary> 
        List<T> Search(string query); 

        ///<summary> 
        ///건수 
        ///</summary> 
        int Has(); 

        ///<summary> 
        ///정렬 
        ///</summary> 
        IEnumerable<T> Ordering(OrderOption orderOption); 

        ///<summary> 
        ///페이징 
        ///</summary> 
        List<T> Paging(int pageNumber, int pageSize); 
    }
}

IBreadShop 제네릭 인터페이스는 앞에서 CRUD와 관련한 개체 이름 짓기 패턴 중에서 자주 사용되는 BREAD SHOP 단어를 미리 인터페이스로 정의해 놓은 형태입니다. 구조가 간단한 데이터를 다룰 때는 이 인터페이스를 상속한 후 기본 코드를 구현하고, 그다음 추가적인 로직을 구현해 가는 식으로 사용할 수 있습니다.

Ordering() 메서드는 학습 목적으로 읽고 쓰기가 가능한 List<T> 대신에 읽기 전용인 IEnumerable<T>를 사용한 것입니다. List<T> 형태를 사용해도 무관합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.