2014-07-24 18 views
7

Tôi muốn triển khai ứng dụng tiếp theo của mình với mẫu MVP, vì vậy tôi bắt đầu đọc một số bài viết về cách thực hiện nó. Vấn đề chính đối với tôi là có những cách tiếp cận khác nhau đối với mô hình này. Một số người nói rằng chúng ta nên xem hoạt động như một cái nhìn nhưng một số người khác rằng hoạt động phải là một người trình bày.Android MVP - một Hoạt động có phải là Chế độ xem hoặc Trình bày không?

Hoạt động dưới dạng chế độ xem được mô tả tại đây: MVP Android và điều đó có ý nghĩa. Nhưng mặt khác tôi tìm thấy câu trả lời này với một vài upvotes https://stackoverflow.com/a/7609943 và ai đó nói rằng hoạt động nên là một người trình bày.

Có ai có kinh nghiệm với mẫu này không?

Trả lời

2

Tôi nghĩ rằng an toàn để xem Hoạt động là người trình bày. Chế độ xem có thể được coi là tệp XML bố cục. Người trình bày là một cái gì đó có kết nối trực tiếp đến (các) Mô hình cũng như (các) Chế độ xem như đã nói trong câu trả lời bạn đã đăng ở trên. Trong một Hoạt động, bạn kết nối với (các) Chế độ xem và vẫn ở vị trí trung gian giữa (các) Chế độ xem và (các) Mô hình, đó là chức năng hiệu quả của Người trình bày. Nó lấy các sự kiện đầu vào từ (các) Chế độ xem và đặt (các) giá trị nhận được từ (các) Mô hình để hiển thị trong (các) Chế độ xem.

+2

Chế độ xem không đề xuất chi tiết triển khai cơ bản. Chế độ xem chỉ là trừu tượng có thể được triển khai theo nhiều cách (một chế độ xem GWT, chế độ xem giả, chế độ xem dựa trên Android).Tôi thực sự nghĩ rằng một hoạt động trong Android gần gũi hơn với Chế độ xem, vì hoạt động có xu hướng biết chi tiết triển khai (XML bố cục cơ bản, v.v.). Trong thử nghiệm đơn vị, có Presenter là một hoạt động, liên kết chặt chẽ với môi trường Android, trong khi một người trình bày theo lớp bất khả tri cho phép linh hoạt hơn nhiều (bạn có thể dễ dàng kiểm tra người trình bày bằng cách sử dụng 'mvn test' theo cách này). –

+0

Vậy bạn đề xuất gì với tư cách là người trình bày? –

+1

Như tôi đã nói ở trên, người trình bày phải là một người đàn ông trung gian xem lớp bất khả tri. Ví dụ, nó có thể là một lớp đơn giản tham chiếu một mô hình và một khung nhìn thông qua các giao diện trong trường hợp đơn giản nhất của nó, và có thể ra lệnh cho sự tương tác và luồng công việc giữa mô hình và khung nhìn. Giả sử bạn có trình bày như vậy có thể dễ dàng sử dụng lại cho các môi trường khác nhau: Android, GWT, v.v. –

8

Sau một khoảnh khắc, tôi nghĩ Hoạt động nên được xem là Chế độ xem. Nếu chúng ta tách logic nghiệp vụ khỏi hoạt động thì sẽ dễ dàng thay thế hoạt động bằng một đoạn hoặc một khung nhìn. Chúng tôi thậm chí sẽ có thể đưa các mô hình và diễn giả của chúng tôi và sử dụng chúng trong ứng dụng dành cho máy tính để bàn, chỉ cần thêm chế độ xem mới cho họ. Nó cũng tốt hơn cho mục đích thử nghiệm để tạo ra người trình bày như một đối tượng bình thường, không phải hoạt động.

7

Hoạt động rất gần với bố cục của bạn nên nó phải là chế độ xem. Và logic nghiệp vụ của bạn phải có trong Người trình bày được tạo bởi Hoạt động của bạn. Để hiểu thêm về MVP hãy nhìn vào - MVP for android

enter image description here

0

The View hạn bị quá tải ở đây, xem android khác với quan điểm phải được sử dụng trong mẫu MVP. Xem là giao diện được triển khai bởi Activity/Fragment. Bạn có thể xem trên Official Android MVP Examples.

Tôi sẽ đề xuất khởi động từ basic one. Đây là luồng từ trang.

enter image description here

+0

do tài liệu bạn tham khảo "Trong phiên bản này của ứng dụng, Activity là bộ điều khiển tổng thể tạo và kết nối các khung nhìn và người thuyết trình . " – YTerle

Các vấn đề liên quan