Tôi muốn sử dụng MVC để cấu trúc ứng dụng Swing của tôi, nhưng dường như có một xung đột.Kiến trúc MVC và Swing
Khi tôi hiểu MVC, bộ điều khiển sẽ xử lý đầu vào và cập nhật mô hình. Mô hình phải thông báo cho các quan sát viên của mình rằng chế độ xem là một.
Tôi có hai vấn đề
- Swing là tất cả phần của view. Thực tế là các thành phần có mô hình riêng của họ là một chi tiết thực hiện. Tôi muốn giữ mã swing-cụ thể ra khỏi bộ điều khiển/mô hình phải không?
- Bộ điều khiển của tôi cần nhận sự kiện do người dùng kích hoạt, nhưng điều này đến từ thành phần xoay trong chế độ xem và bộ điều khiển không nên biết về chế độ xem.
Tôi chắc chắn vấn đề này đã được giải quyết nhiều lần trước đây, nhưng tôi không thể tìm thấy ví dụ thế giới thực về ứng dụng xoay MVC dựa trên kích thước phù hợp.
Update - Một vấn đề tôi quên
gì MVC không phục vụ trực tiếp cho là cấu trúc của các thành phần MVC khác nhau trong hệ thống phân cấp của ứng dụng. Ví dụ: màn hình chính có thể có các tab "bán hàng" và "mua", mỗi tab có thể có các bảng "truy vấn" và "truy vấn" mới. Ngày đầu đó, có thể có một nút "sửa đổi được lựa chọn" mà sẽ tạo ra (có thể nhiều) cửa sổ theo yêu cầu.
Điều gì đó phải tạo mô hình, chế độ xem và bộ điều khiển cho các thành phần phụ này theo yêu cầu. Nó không thể là bộ điều khiển từ bộ điều khiển hay mô hình vì chúng không biết chế độ xem nào tạo ra và nó không phải là khung nhìn vì nó là logic ứng dụng và nó trả lời một sự kiện (đó là công việc của bộ điều khiển).
Có câu trả lời không?
a) Chỉ theo như Swing liên quan - tức là ở cấp thành phần. Tôi đang nói về việc sử dụng kiến trúc MVC cho ứng dụng của tôi. b) Trên thực tế swing không phải là đúng MVC - thành phần là bộ điều khiển và xem, và nó sử dụng một UIDelegate. – Draemon
Điều này là đúng nhưng theo như a) là có liên quan, tôi đang bối rối. Bạn hỏi về cấu trúc một ứng dụng Swing –
Tôi chỉ có nghĩa là lớp JButton không có tất cả các logic vẽ (mà tôi sẽ xem là dạng xem) –