2017-03-29 21 views
6

Vì vậy, tôi có một người trình bày đã được gắn với một hoạt động. Cuốn sách nói rằng một người trình bày nên được gắn với một chế độ xem. Nhưng bây giờ tôi đang thêm một vài đoạn và nhiều khung nhìn tùy chỉnh. Tôi đang xem xét một mảnh để được xem là tốt. Các khung nhìn tùy chỉnh sẽ chứa một chút logic trong chúng. Cả hai phân đoạn và khung nhìn tùy chỉnh đều có trong hoạt động của tôi.MVP android - tôi có thể có nhiều diễn giả cho lượt xem và đoạn tùy chỉnh

Câu hỏi của tôi là, tôi có nên sử dụng lại cùng một người trình bày trong các chế độ xem đoạn và chế độ xem tùy chỉnh hay mỗi chế độ xem sẽ có người trình bày riêng? Tôi nhận ra đây là tất cả ý kiến ​​dựa trên nhưng tôi muốn cách tiếp cận tốt nhất để kiểm tra và giữ mã sạch sẽ.

Nếu tôi có một người trình bày cho tất cả các số này thì giao diện sử dụng của người trình bày sẽ có nhiều phương thức gọi lại trong đó. Trong khi đó nếu tôi đã làm ngược lại và tạo ra một người trình bày cho mỗi lần xem nó có thể được dễ dàng hơn để đọc nhưng làm thế nào tôi sẽ kiểm tra nó?

Trả lời

5

View (Activity) có thể có nhiều Presenters. Trong trường hợp có nhiều số CustomViews cho Activity, bạn có thể có một số khổng lồ Presenter hoặc Presenter cho mỗi CustomView. Nó phụ thuộc vào điều này:

  1. Nếu tất cả CustomViews phần nhu cầu tương tự, một Presenter cho tất cả CustomViews là đủ. Tuy nhiên hai lựa chọn cho Presenter's phạm vi:

    • PresenterActivityScope. Activity sử dụng Presenter và được gọi từ Presenter. Sau đó gửi lệnh, dữ liệu đến CustomViews
    • PresenterViewScope. Mỗi CustomView tạo ra và phá hủy cùng Presenter

    Trong trường hợp CustomViews nhu cầu không chia sẻ cùng, có một PresenterViewInterface, họ sẽ chứa các phương pháp của tất cả các CustomViews nhu cầu, vì vậy mỗi CustomView phải thực hiện tất cả các phương pháp khai báo trong ViewInterface, rời một số trống.

  2. Nếu CustomViews có các nhu cầu và phương thức khác nhau, gọi tới Presenter, họ cần có Presenter riêng.

  3. Nếu CustomViews có nhu cầu khác nhau và cũng có một số nhu cầu chung, chúng chia sẻ nhu cầu chung trong một Presenter, nhu cầu cụ thể trong riêng của chúng Presenters. Ví dụ cho điều này: ActivityOneCustomViewOneCustomViewTwo. Common Presenter cho cả hai CustomViews có thể là FeedPresenter (xem xét cả hai CustomViews có Danh sách nguồn cấp dữ liệu). Sau đó, CustomViewOne sẽ có CustomPresenter1CustomViewTwo sẽ có CustomPresenter2 cho các nhu cầu cụ thể của chúng.
2

thực hành tốt nhất là để tạo ra một basepresenter, sau đó tạo người dẫn chương trình cho mỗi điểm thực hiện basepresenter

+0

btw, đây là phương pháp tốt nhất mà tôi theo dõi ngay bây giờ. – j2emanue

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