Giới thiệu
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo và ảnh hưởng lẫn nhau. Ví dụ: trong một công ty bạn có từng phòng ban, mỗi phòng ban sẽ chịu trách nhiệm một công việc cụ thể nào đó, phòng này không được can thiệp vào công việc nội bộ của phòng kia như. Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng này. Bạn sẽ nghe nói đến thuật ngữ kiến trúc đa tầng/nhiều lớp, người ta phân chia chương trình ra thành nhiều tầng (lớp), Mỗi tầng (lớp) đảm trách 1 nhiệm vụ nhất định. Đây gọi là kiến trúc đa tầng. Mô hình quen thuộc nhất là mô hình 3 tầng.
Chú ý:Các bạn không nên nhầm lẫn khái niệm lớp/tầng(layer) trong phần này với khái niệm lớp(class) của các ngôn ngữ lập trình hướng đối tượng.
Lợi ích của mô hình đa tầng:
• Các tầng ít có sự phụ thuộc vào nhau, dễ dàng chỉnh sửa & thay đổi. 1 thay đổi về database chỉ cần viết lại code cho tầng dữ liệu mà ko đụng chạm vào các tầng khác. Hoặc muốn design lại form thì chỉ cần chỉnh tầng giao diện, các tầng khác ko ảnh hưởng.
• Việc xây dựng chương trình sẽ nhanh chóng & dễ dàng hơn. Chẳng hạn 2 lập trình viên A & B cùng hợp tác viết chương trình. A được phân công ngồi design các form cho thật đẹp. Điều gì xảy ra nếu lập trình theo mô hình 1 tầng?! B sẽ phải ngồi chờ A thiết kế xong rồi mới tới lượt mình viết code. Theo kiến trúc đa tầng do các tầng có rất ít sự phụ thuộc lẫn nhau nên 2 nguời có thể ngồi làm độc lập, song song với nhau, cuối cùng sẽ ráp lại.
Dễ dàng tái sử dụng lại các tầng đã viết. Như thí dụ trên tầng dữ liệu có chứa các phương thức thêm mới/lấy thông tin thực thể mặt hàng trong database. Giả sử sau này có viết 1 chương trình quản lý nào đó mà cũng có chức năng cần thêm/lấy thông tin thực thể mặt hàng trong database (mà thực thể mặt hàng này cũng chỉ có các trường như mã hàng, tên hàng, giá bán, nói chung là cấu trúc y xì cái mặt hàng ở chương trình cũ), thì lấy tầng dữ liệu của cái cũ đắp qua cho xong.