Repository Architecture là gì

The Repository Design Pattern    

  • Báo cáo

Bài đăng này đã không được cập nhật trong 6 năm

Repository Design Pattern

Trong bài viết này, tôi cùng các bạn sẽ cùng nhau thảo luận về Repository Pattern nhưng trước hết hãy cùng nhau tìm hiểu qua về Design Pattern

Design Pattern là gì?

  • Design Pattern là một kỹ thuật trong lập trình hướng đối tượng, cung cấp cho chúng ta cách tư duy trong các tình huống xảy ra của lập trình hướng đối tượng cũng như trong quá trình phân tích thiết kế và phát triển phần mềm. Vì vậy Design Pattern không phải là một Class, cũng không phải là một Library, và cũng không hề là một ngôn ngữ cụ thể nào cả.
  • Design Pattern cung cấp cho chúng ta các mẫu thiết kế, các giải pháp cho các vấn đề chung thường gặp trong lập trình, đảm bảo sẽ cung cấp cho chúng ta các giải pháp tối ưu trong việc giải quyết các vấn đề trong lập trình.

Phân loại Design Pattern

  • Design Pattern được chia làm 3 nhóm chính:
  • Nhóm khởi tạo [Creational]: giúp chúng ta trong việc khởi tạo các đối tượng, cung cấp các thủ thuật để khởi tạo đối tượng mà không cần đến từ khóa new. VD: Abstract Factory, Factory Method, Singleton, Builder, Prototype...
  • Nhóm cấu trúc [Structural]: thường dùng để giải quyết mối quan hệ giữa các thực thể [entities], giúp thao tác với các đối tượng dễ dàng hơn. VD: Adapter, Bridge, Composite, Decorator, Facade, ProxyFlyweight...
  • Nhóm hành vi [Behavioral]: dùng trong việc thể hiện các hành vi của đối tượng, tương tác [communicate] giữa các đối tượng dễ dàng hơn. VD: Interpreter, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy và Visitor...

Vì sao nên sử dụng Design Pattern?

  • Design Pattern cung cấp cho chúng ta các giải pháp ở dạng tổng quát nhất, giúp chúng ta tăng tốc độ phát triển phần mềm thông qua các mô hình đã được kiểm nghiệm thực tế.
  • Sử dụng Design Pattern giúp chúng ta tránh được các lỗi tiềm ẩn [nhất là trong những hệ thống lớn], đồng thời có khả năng tái sử dụng cao để có thể dễ nâng cấp và bảo trì trong tương lai.

Repository Pattern là gì?

  • Repository Pattern là lớp trung gian giữa tầng Business LogicData Access, giúp cho việc truy cập dữ liệu chặt chẽ và bảo mật hơn.
  • Repository đóng vai trò là một lớp kết nối giữa tầng BusinessModel của ứng dụng.
  • Thông thường thì các phần truy xuất, giao tiếp với database năm rải rác ở trong code, khi bạn muốn thực hiện một thao tác lên database thì phải tìm trong code cũng như tìm các thuộc tính trong bảng để xử lý. Điều này gây lãng phí thời gian và công sức rất nhiều.
  • Với Repository design pattern, thì việc thay đổi ở code sẽ không ảnh hưởng quá nhiều công sức chúng ra chỉnh sửa.
  • Một số lý do chung ta nên sử dụng Repository Pattern:
  • Một nơi duy nhất để thay đổi quyền truy cập dữ liệu cũng như xử lý dữ liệu.
  • Một nơi duy nhất chịu trách nhiệm cho việc mapping các bảng vào object.
  • Tăng tính bảo mật và rõ ràng cho code.
  • Rất dễ dàng để thay thế một Repository với một implementation giả cho việc testing, vì vậy bạn không cần chuẩn bị một cơ sở dữ liệu có sẵn.

Hãy cùng nhau tìm hiểu thêm về Repository qua ví dụ cụ thể để có thể hình dung dễ hơn. Tôi sẽ sử dụng sự trợ giúp của Laravel để mô tả rõ hơn. Các bạn nên lưu ý Laravel hay các MVC Framework khác đều có thể áp dụng ý tưởng của Repository.

Controller không sử dụng Repository

Trong những ứng dụng MVC điển hình, việc thực hiện CRUD với một resource bất kỳ như sau:

Chủ Đề