Tôi đã đọc về Trình điều khiển Chế độ xem Mô hình, Người dẫn chương trình Chế độ xem Mô hình, Chế độ xem Mô hình Chế độ xem, v.v. và nói chung, khái niệm cơ bản có vẻ khá đơn giản để hiểu: giữ cho hình ảnh đẹp và sự khoa học như tách biệt và không biết gì về nhau như khả thi. Không nhận được bơ đậu phộng logic trong sô cô la thiết kế; tuyệt, tôi thích điều đó
Vấn đề là tôi vẫn còn hơi mờ nhạt đối với phần thứ ba đó ... phần không theo mô hình hoặc xem. Mọi người dường như có ý tưởng riêng của họ về việc gọi nó là gì, nên làm gì, đúng đắn, sai lầm gì ... và tôi sẽ cố gắng tìm ra khi Người thuyết trình trở thành ViewModel và khi nào nên xem Không được làm điều đó bởi vì đó là công việc của Người thuyết trình và--
Tôi đang lan man.
Thay vì yêu cầu ai đó giải thích sự khác biệt giữa họ - bởi vì điều đó đã được thực hiện hết lần này đến lần khác (tôi biết; tôi đã đọc nhiều bài viết hơn tôi có thể đếm được) - Tôi tò mò muốn nghe suy nghĩ của một Một vài lập trình viên trên mô hình tôi đã tự mình lắp ghép.
Điều đó nói rằng, bạn sẽ phân loại thiết kế này là gì, và có lẽ quan trọng hơn, bạn có thấy bất cứ điều gì về điều này rõ ràng là hút? Chắc chắn, tôi rất thích nghe tôi làm tốt nếu đây thực sự là thiết kế chắc chắn, nhưng tôi muốn được tư vấn chắc chắn hơn lời khen ngợi.
Lưu ý: Tôi sẽ sử dụng "Cây cầu" cho phần thứ ba bí ẩn của Chế độ xem mô hình-? để tránh bất kỳ đề xuất tiềm thức nào về những gì nó "nên".
Mô hình
- Là cơ quan có thẩm quyền về dữ liệu.
- Nhận thông tin về các thay đổi được yêu cầu từ Cầu.
- Chứa và thực hiện tất cả logic cho cách dữ liệu liên quan đến dữ liệu khác.
Thông báo cho Bridge khi dữ liệu thay đổi (đối với dữ liệu mà Bridge đã thể hiện sự quan tâm).Chỉnh sửa từ ngữ: Cho phép người đăng ký bên ngoài (về điều mà họ không biết gì) để theo dõi trạng thái hoặc kết quả tính toán.- Không có kiến thức về Chế độ xem.
Lượt xem
- Có liên quan với việc cung cấp cho người dùng một cách để xem và thao tác dữ liệu.
- Nhận thông tin về cập nhật dữ liệu từ Cầu.
- Chứa và thực hiện tất cả logic về cách trình bày dữ liệu và điều khiển cho người dùng.
- Thông báo cho Bridge khi người dùng đã thực hiện một hành động (có thể) ảnh hưởng đến Model.
- Thông báo cho Bridge những thông tin mà nó quan tâm.
- Không có kiến thức về Mô hình.
Cầu
- Là người điều phối và dịch giả giữa Mô hình và Chế độ xem.
- Làm cho bất kỳ thay đổi định dạng thích hợp nào đối với thông tin được truyền giữa Mô hình và Chế độ xem.
- Giữ lại thông tin về "ai cần biết gì".
- Có kiến thức về cả Mô hình và Chế độ xem.
Ghi chú bổ sung
- Trong các chương trình phức tạp hơn, thường có nhiều Mô hình. Trong tình huống này, Bridge thường đảm nhận công việc điều phối / dịch giữa nhiều Mô hình và do đó trở thành cơ quan cho những gì Mô hình protocall / API / thiết kế nên được xây dựng. (ví dụ: nếu xây dựng chương trình trò chơi bài và bạn muốn xây dựng mô hình xáo trộn sàn thay thế, bạn nên sử dụng Cầu để xác định những chức năng nào được yêu cầu để giao tiếp đúng với Cầu.)
- Trong các chương trình đơn giản nhỏ chỉ có một Chế độ xem và Kiểu, Cầu nối "giả định" chức năng nào có sẵn ở hai bên. Tuy nhiên, khi các chương trình trở nên phức tạp hơn, chúng tôi khuyên rằng (các) Chế độ xem và Mô hình báo cáo chức năng của chúng với Cầu để có thể tránh được sự thiếu hiệu quả và các giả định lỗi.
Tôi nghĩ rằng chỉ cần bao gồm nó. Bằng mọi cách, tôi hoan nghênh mọi câu hỏi của bạn về thiết kế tôi có xu hướng sử dụng và tôi cũng khuyến khích mọi đề xuất.
Và như mọi khi, cảm ơn bạn đã dành thời gian.