Pattern Architecture phần 1 - Layered Architecture
Trong tất cả các pattern architecture thì có lẽ layered architecture hay nói cách khác là n-tier architecture pattern là một trong những pattern được áp dụng rộng rãi nhất hiện nay. Trước đó, pattern này là the de factor standard trong các ứng dụng Java EE, nhưng nhờ vào những ưu điểm phù hợp với việc phát triển trong hầu hết các hệ thống khi triển khai. Để nói cụ thể hơn, layered architecture pattern đúng như tên gọi của nó, nó được chia thành các component, mỗi component sẽ đảm nhận một nhiệm vụ khác nhau, ví dụ như: presentation layer là nơi sẽ xử lý nghiệp vụ liên quan đến user interface, business layer sẽ đảm nhận việc xử lý logic mà không cần quan tâm đến user interface.
Trong nhiều trường hợp, layered architeture pattern không quy định số lượng layer bắt buộc phải có nhưng nó sẽ bao gồm 4 layer chính: presentation, business, persistence, database. Các layer này có thể tùy biến tùy theo ngữ cảnh của bạn, ví dụ như: trong nhiều trường hợp, business layer và persistence layer có thể gộp lại thành một business layer hoặc với những ứng dụng phức tạp hơn có thể lên đến 5,6 layer hoặc nhiều hơn. Nhờ vào việc chia ra thành các layer xử lý các nghiệp vụ khác nhau, ứng dụng sẽ dễ dàng quản lý, maintain, test hơn rất nhiều.
Có 1 vài khái niệm cần phải nhớ trong layered architecture pattern:
- closed layer: nghĩa là khi xử lý một request bất kì thì việc xử lý tuần tự theo từng layer là điều bắt buộc, ví dụ như: request đó bắt buộc phải đi từ presentation layer rồi mới đến business layer, sau đó mới đến persistence layer cuối cùng thao tác với dữ liệu trong database layer
- layers of isolation: vậy tại sao presentation layer không truy cập thẳng vào database layer để lấy dữ liệu mà lại bắt buộc phải đi qua business layer?. Nếu làm vậy thực sự không sao cả, mọi thứ vẫn hoạt động bình thường, nhưng việc gộp các business layer với presentation layer và database layer lại làm một dẫn đến sự phụ thuộc giữa các layer tăng lên, khi ứng dụng ngày càng lớn và phức tạp thì việc maintain hay viết test trở lên khó khăn hơn rất nhiều. Chính vì vậy, khái niệm layers of isolation ở đây để nói về tính độc lập giữa các layer là điều bắt buộc, các layer chỉ cần xử lý nghiệp vụ của mình mà không cần quan tâm đến các layer khác xử lý như thế nào.
















