Tôi đang phát triển một ứng dụng WPF bằng cách sử dụng mẫu MVVM. Tôi đang sử dụng thư viện MVVM Light và tôi cũng đang cố gắng sử dụng một injector phụ thuộc (tôi đang xem xét Ninject và Unity).MVVM: Giao tiếp giữa Model và ViewModels
Tôi đã đọc rất nhiều bài viết trên blog và tôi khá bối rối về cách "thích hợp" làm cho các lớp của tôi giao tiếp với nhau. Đặc biệt, tôi không biết khi nào nên sử dụng Dependency Injection và khi nào nên dựa vào mẫu hòa giải.
Cho phép xem xét ví dụ. Tôi có một ViewModel, cho phép gọi nó là DataViewModel, và lớp Data cung cấp một số loại dữ liệu. Làm cách nào tốt hơn để liên lạc giữa chúng:
A. Tiêm phụ thuộc vào DataViewModel bằng giao diện IData? Bằng cách này, dữ liệu sẽ không phải dựa vào Messenger, nhưng nó sẽ phải cung cấp một sự kiện nếu dữ liệu thay đổi và ViewModel sẽ phải đăng ký với nó.
B. Dựa vào mẫu hòa giải (được thực hiện trong MVVM Light dưới dạng Messenger) và gửi tin nhắn giữa Model và ViewModel? Bằng cách này nó sẽ không cần thiết để sử dụng Dependency Injection ở tất cả, bởi vì toàn bộ thông tin liên lạc sẽ được dựa trên thông điệp.
Hơn nữa, ViewModels của tôi có nên tiêm phụ thuộc vào các Chế độ xem khác hay không, hoặc tốt hơn là chỉ dựa vào Messenger? Nếu đầu tiên, nó sẽ là cần thiết để xác định một giao diện riêng biệt cho mỗi ViewModel? Tôi nghĩ rằng việc định nghĩa một giao diện cho mỗi máy ảo sẽ là một công việc bổ sung, nhưng có lẽ nó đáng giá.
Bây giờ tôi nhận được nó ... nhưng tôi cần một thời gian để làm quen với tiêm phụ thuộc và dịch vụ :) Cảm ơn! – madbadger