Tìm hiểu về Repository Pattern và Generic Repository Pattern
Trong bài viết này, tôi sẽ demo cho bạn Repository Pattern là gì và lợi ích của việc sử dụng Repository Pattern. Tôi cũng sẽ giải thích về Generic Repository Pattern và các lợi ích của nó.

Tôi cũng nghĩ các bạn nên biết về DRY trước, DRY viết tắt là Don't Repeat Yourself - dịch là Đừng lặp lại chính bạn. Đó là một yếu tố rất quan trọng của OOP (Object Oriented Programming). Ngày nay với các dự án cho doanh nghiệp lớn chúng ta có thể có các kiến trúc đa tầng và chúng cần được triển khai DRY.
Chúng ta có thể triển khai DRY bằng cách sử dụng Repository Pattern
Repository Pattern
Nhiều khi dự án đòi hỏi chúng ta phải định nghĩa các nghiệp vụ giữa tầng business(Business Service Layer) và tầng truy xuất dữ liệu (DAL). Những logic đó có thể được định nghĩa sử dụng Repository Pattern. Về cơ bản Repository là một lớp trung gian giữa hai tầng này. Trong project sử dụng Entity Framework với ASP.NET MVC thì Data chính là tầng chứa các lớp dbContext và class enttiy. Còn business logic chính là tầng xử lý nghiệp vụ của dự án. Repository hầu hết được sử dụng những chỗ cần điều chỉnh dữ liệu trước khi truyền xuống tầng data hoặc truyền lên trên business logic.
Lợi ích của việc sử dụng Repository Pattern
- Tập trung hóa được các logic về xử lý dữ liệu hoặc business logic.
- Dễ dàng unit test
- Đưa ra kiến trúc linh hoạt
- Khi thay đổi logic của tầng data hoặc business logic, không cần thay đổi Repository
Generic Repository Pattern
Trong các trường hợp khác, dự án lại đòi hỏi một cách tốt nhất để tạo ra tất cả các repository logic ở cùng một nơi. Chúng ta cần tạo 1 và chỉ 1 repository cho việc thao tác với toàn bộ các class entity. Vậy để giải quyết điều này chúng ta phải sử dụng Generic Repository Pattern.
Lợi ích của Generic Repository Pattern:
- Giảm thiểu sự trùng lặp code
- Đảm bảo các coder dùng chung 1 pattern
- Ít lỗi hơn
- Dễ dàng bảo trì sau này

Trích nguồn từ: c-sharpcorner.com
Tags:
Bài viết liên quan
Nâng cấp RAG thành Agentic RAG với Dynamic Toolcall | Xây dựng RAG AI
Vậy làm thế nào để nâng cấp RAG thành một hệ thống Agentic RAG thông minh hơn, có khả năng tự động quyết định khi nào và nên gọi tool nào? Câu trả lời chính là Dynamic Toolcall.
Đọc thêm
Tối ưu kết quả trả về từ VectorDB với Scoring và Fingerprint | Xây dựng RAG AI
Đến Phần 3 này, chúng ta sẽ cùng nâng cấp khả năng tìm kiếm và truy vấn dữ liệu từ VectorDB.
Đọc thêmTrang bị Memory cho RAG bằng Vector Database với Qdrant
Ở phần tiếp theo này, chúng ta sẽ tiến thêm một bước quan trọng: trang bị bộ nhớ (Memory) cho RAG bằng cách sử dụng Vector Database Qdrant.
Đọc thêm
Hướng dẫn tạo ứng dụng ASP.NET Core (.NET 8) và chuẩn bị kết nối OpenAI Chat Model để xây dựng RAG AI
Trong bài viết này, chúng ta sẽ bắt đầu một hành trình nhỏ: xây dựng một ứng dụng RAG AI (Retrieval-Augmented Generation).
Đọc thêm
Ra mắt khóa học: TEDU-53: Xây dựng ứng dụng CMS với ASP.NET Core 8.0 + Angular.
Ngay bây giờ các bạn có thể đăng ký thông qua mã giảm giá tại trang chi tiết khóa học. Mã giảm giá sẽ được vô hiệu hóa khi đủ số lượng người theo thang bậc.
Đọc thêm
10 thủ thuật để tăng tốc độ ứng dụng .NET Core 3.x
Trong bài viết này mình sẽ đưa ra 10 mẹo để giúp bạn tăng tốc ứng dụng ASP.NET Core 3.
Đọc thêm
Migrate hệ thống ASP.NET Core 2.2 lên 3.1
Bài viết này mình đúc kết lại sau khi migrate toàn bộ hệ thống TEDU hiện tại từ .NET Core 2.2 lên 3.1 chia sẻ lại để mọi người cùng trao đổi
Đọc thêm
Tìm hiểu Unit Testing trong ASP.NET Core
Tiếp theo bài viết trước với tiêu đề Tìm hiểu về Dependency Injection trong ASP.NET Core. Hôm nay mình sẽ tập trung vào unit test.
Đọc thêm
Tìm hiểu về Dependency Injection trong ASP.NET Core
Bài viết này chúng ta sẽ cùng tìm hiểu về những điều thú vị xung quanh depedency injection và unit testing.
Đọc thêm
Cách sử dụng Yarn trong Visual Studio 2017
Cách sử dụng Yarn để quản lý các dependencies trong Visual Studio 2017
Đọc thêm