Trong một số dự án mẫu, tôi đã thấy ViewModels được sử dụng để chuyển đổi đối tượng dữ liệu thành chuỗi, để sử dụng trong Chế độ xem.Chế độ xem và hiển thị
ViewModel thường sẽ có một hàm tạo nhận một tham số - một đối tượng dữ liệu. Các nhà xây dựng sau đó sẽ cư trú các thuộc tính khác nhau của ViewModel (chủ yếu là chuỗi và ints).
Điều này ngăn không cho bất kỳ logic phức tạp nào xảy ra trong Chế độ xem.
Thoạt nhìn, điều này có vẻ như là một ý tưởng hay đối với tôi, vì nó thực thi đầy đủ hơn việc tách Chế độ xem khỏi logic phức tạp. Ví dụ: giả sử chế độ xem của tôi đang cố gắng hiển thị thuộc tính 'Kích thước' của đối tượng dữ liệu, Kích thước là một số nằm trong khoảng từ 1 đến 3 đại diện cho 'Nhỏ/Trung bình/Lớn'.
Thay vì có câu lệnh if/switch trong quan điểm của tôi, tôi sẽ chỉ có một 'SizeString' hoặc một cái gì đó tương tự trong ViewModel của tôi và câu lệnh if/switch sẽ xuất hiện trong hàm tạo ViewModel.
Có ai không đồng ý với cách tiếp cận này không?
Sẽ tốt hơn nếu sử dụng một số cách tiếp cận khác, chẳng hạn như người trợ giúp? Và nếu có, tại sao?
Giải thích tốt. Lý do tôi không chắc chắn về điều này là tôi chắc chắn rằng tôi đọc ở đâu đó mà ViewModels chỉ nên là các đối tượng POCO đơn giản mà không có bất kỳ logic nào. Nhưng rõ ràng điều này sẽ không hiệu quả. Các ViewModels nên được phép chứa logic trình bày. – Jonathan
POCO không loại trừ sự tồn tại của logic :) –
Muốn viết về SRP, nhưng bạn đã làm điều đó. Như tôi luôn nói - thật khó để trở thành một võ sĩ quyền Anh và vũ công ballet cùng một lúc. :) –