CÁC MẪU THIẾT KẾ PHẦN MỀM PHỔ BIẾN
Khi chúng ta tạo ra các phần mềm, chúng ta thường sẽ gặp lại nhiều lần các vấn đề cần giải quyết. Dĩ nhiên chúng ta không muốn “phát minh lại bánh xe”. Trong kỹ thuật phần mềm, nhiều mẫu thiết kế phổ biến được tạo ra. Phần bài viết sẽ giới thiệu ba thiết kế rất hữu ích cho các dự án tự động hóa network automation: Mô hình thiết kế Model-View-Controller (MVC) và mô hình thiết kế Observer.
MẪU THIẾT KẾ MODEL-VIEW-CONTROLLER (MVC)
Mẫu MVC là một trong những mẫu thiết kế đầu tiên đi theo triết lý tách biệt các mối quan tâm hay các yêu cầu. Nguyên lý này được dùng để tách sự phụ thuộc lẫn nhau giữ các ứng dụng và tách biệt các chức năng giữa các thành phần. Mục tiêu là làm cho các tầng khác nhau của phần mềm ứng dụng độc lập với nhau (chẳng hạn như lớp truy cập dữ liệu, các chức năng tính toán, các chức năng hiển thị đến người dùng cuối). Chức năng modun này giúp cho các ứng dụng dễ xây dựng và bảo trì truy khi vẫn duy trì tính linh động cho sự thay đổi trong chức năng business. Mẫu thiết kế này cũng cung cấp một cấu trúc tổ chức tự nhiên cho một chương trình mà bất cứ ai cũng có thể tham gia và phát triển. Nếu bạn từng sử dụng một ứng dụng web, rất có thể ứng dụng web đó được xây dựng theo mô hình MVC.
Có một số web framework dùng khái niệm MVC với các ngôn ngữ lập trình. Angular, Express và Backbome được viết bằng JavaScripts. Django và Flash được viết bởi Python.
Mẫu thiết kế MVC cổ điển có ba thành phần chính:
- Thành phần Mô hình (Model): chịu trách nhiệm truy cập và thao tác dữ liệu. Thành phần này thường liên quan đến cơ sở dữ liệu database nhưng cũng có thể đơn giản là dữ liệu từ một file. Thành phần này thực thi tất cả các tác vụ dữ liệu, chẳng hạn như chọn lựa, chèn, cập nhật và các thao tác xóa. Thành phần model sẽ nhận các lệnh từ Controller.
- Thành phần View: Thành phần View là những gì người dùng cuối end-user thấy trên thiết bị khi họ tương tác với chương trình. Nó có thể là một trang web hoặc một đoạn văn bản từ một dòng lệnh. Điểm mạnh của view là nó có thể kết hợp với bất kỳ thiết bị nào hay với bất kỳ định dạng nào mà không thay đổi tính logic của thành phần model. Thành phần View sẽ tương tác với controller bằng cách gửi hoặc nhận dữ liệu từ thành phần model thông qua controller. Chức năng chính của view là để đưa ra dữ liệu.
- Thành phần Controller: Thành phần này là trung gian giữa những gì người dùng thất và các chức năng luận lý backend phía sau khi thao tác dữ liệu. Vai trò của controller là nhận các yêu cầu từ người dùng thông qua View và sau đó chuyển các yêu cầu này đến model và các nơi lưu trữ dữ liệu bên dưới.
THIẾT KẾ THEO MẪU OBSERVER
Mẫu thiết kế Obserer được tạo ra để giải quyết vấn đề chia sẽ thông tin giữa một đối tượng và một số đối tượng khác. Mẫu này được mô tả là rất hữu ích cho các hệ thống phân bố, trong đó cần chia sẻ các cấu hình hay các chi tiết về sự thay đổi khi nó xảy ra. Mẫu thiết kế này khá đơn giản và bao gồm hai thành phần luận lý:
- Chủ thể Subject: thành phần subject ám chỉ đến đối tượng đang được quan sát, nói cách khác, dữ liệu đang được đồng bộ. Thành phần subject có một quá trình đăng ký cho phép các thành phần khác hay các ứng dụng khác đăng ký theo dõi vào tiến trình. Khi đã đăng ký, một thuê bao subscriber được gửi một thông tin cập nhật bất cứ khi nào có một thay đổi trong dữ liệu của subject sao cho hệ thống ở xa có thể đồng bộ dữ liệu.
- Thành phần quan sát Observer: thành phần này sẽ đăng lý với subject để cho phép thành phần subject biết được observer và làm thế nào để giao tiếp với nó. Chức năng duy nhất của observer là đồng bộ dữ liệu với subject khi được gọi. Điểm mấu chốt để hiểu về observer là nó không dùng tiến trình polling. Các cập nhật chỉ được push.
Đặng Quang Minh
Email: dangquangminh@vnpro.org