2013-03-08 22 views
6

Lợi ích nào có thể đạt được từ việc thoái vốn khỏi vai trò của người trình bày từ một hoạt động?GWT - Tách vai trò của người trình bày khỏi hoạt động

Vai trò/quan ngại có thể được tách ra để phân tích hoạt động là người trình bày là gì?

Tại sao bạn muốn tách chúng thành hai mối quan tâm riêng biệt?

Trong những trường hợp nào sẽ hợp lý nếu không thống nhất chúng?

Đưa ra ví dụ, ưu điểm hoặc nhược điểm.

Trả lời

7

tôi có thể thấy hai lý do chính để tách thuyết trình từ hoạt động: tái sử dụng và testability.

trường hợp sử dụng Bất động cho việc tái sử dụng: chúng ta có một thực thể minh họa với những đặc tính như các nhiếp ảnh gia, bản quyền và ngày chụp, có thể liên kết đến các tài liệu. Truyền thuyết về mối quan hệ giữa tài liệu và hình minh họa. Bạn có thể chỉnh sửa cả hình minh họa và chú thích trên màn hình riêng của họ, nhưng chúng tôi cũng muốn minh họa có thể được chỉnh sửa từ màn hình chú giải. Vì vậy, chúng tôi đã làm một người trình bày cho màn hình minh họa. Hoạt động minh họa là một trình bao bọc thực sự mỏng xung quanh người trình bày đó, và hoạt động truyền thuyết phức tạp hơn một chút, nhưng tái sử dụng trình bày và xem. Trách nhiệm của hoạt động là cung cấp các số RequestContext và thực hiện fire() (các nút lưu/hủy có trên một hoạt động khác, tương tự như các hành động trên Google Groups).

trường hợp sử dụng Giả định cho việc tái sử dụng:

  • cho hình thức-yếu tố khác nhau, bạn muốn tổng hợp những thứ trên cùng một màn hình hoặc tách chúng trên màn hình của mình (ví dụ như tổng thể/chi tiết), và khi bạn tổng hợp chúng, có hai hoạt động có thể không lý tưởng. Sử dụng các hoạt động mỏng trong hệ số dạng điện thoại cho phép bạn sử dụng lại các thành phần (trình bày/xem) trong một hoạt động đơn lẻ trong các yếu tố dạng bảng hoặc máy tính để bàn.
  • sử dụng lại cùng một người trình bày trên các nền tảng khác nhau: bạn có thể sử dụng cùng một người trình bày trên ứng dụng Android và ứng dụng web (và thậm chí có thể là ứng dụng iOS thông qua java2objc), chế độ xem sẽ là chế độ xem Android gốc hoặc dựa trên GWT chế độ xem và điều hướng sẽ được xử lý bởi các hoạt động và/hoặc phân đoạn của Android so với các hoạt động và địa điểm của GWT.

Về testability (đây là lý thuyết), sau đó bạn có thể kiểm tra người dẫn chương trình của bạn mà không có sự rắc rối của vòng đời hoạt động (chế giễu quan điểm), và sau đó tách biệt kiểm tra vòng đời (cho dù đó khởi một cách chính xác và dọn dẹp các người trình bày, tìm nạp/lưu trữ dữ liệu, v.v. chế nhạo người trình bày).

Xem thêm thông điệp cam kết của ý tưởng https://code.google.com/p/google-web-toolkit/source/detail?r=10185
Ray là làm MVP một chi tiết thi hành các widget, giống như các widget di động sử dụng thuyết trình nội bộ ngày hôm nay. Từ bên ngoài họ chỉ là vật dụng mà bạn có thể sáng tác theo cách bạn muốn; bên trong họ sử dụng MVP để bạn có thể kiểm tra chúng mà không cần GWTTestCase.

+0

Ai đó đã nói với tôi điều tương tự trước khi tôi đọc câu trả lời của bạn nhưng không chi tiết. Đây là câu trả lời tôi đang tìm kiếm để giúp tôi đưa ra chiến lược mã hóa của mình. Thk u. –

0

Đầu tiên của cả hai Cảm ơn câu hỏi đã đẩy tôi vào nghiên cứu dài nhất từ ​​trước tới nay. :)

Theo Thomos Broyer here.

Hoạt động không thể nói chuyện với các tiện ích con mà người trình bày có thể thực hiện.

Hai lĩnh vực chính cần quan tâm:

1- nhận được dữ liệu vào các widget: cách thiết kế này có thể được cải thiện?

Server (RequestFactory) ---> Activity ---> WidgetPresenter ---> Widget 

đây, RequestFactory tay trong dữ liệu để Activity, sau đó cung cấp cho nó để các Presenter mà sau đó đưa cho nó vào widget.

2- nhận được dữ liệu từ widgets đến server

widget ---> WidgetPresenter ---> Activity ---> Server(RequestFactory) 
+0

Trong liên kết mà bạn cung cấp, hoạt động chỉ đơn giản là người trình bày được liên kết với một địa điểm trong khi người phụ tùng là người trình bày không có địa điểm liên quan. Place and Presenters là các chủ đề được tách riêng. Không có gì ngăn cản bạn có một Presenter có sub-presenters bên trong. Bây giờ bạn có thể quyết định xử lý tất cả các thông tin liên lạc trong bạn superpresenter nhưng tôi tin rằng nó làm cho widgetpresenter không tái sử dụng ở nơi khác mà là một điểm xấu. –

+0

Điều đó có nghĩa là Hoạt động nằm bên dưới Trình bày (Không có gì ngăn bạn nói là bộ lọc) hoặc tôi hiểu nhầm câu hỏi :) –

+0

Và một điều chắc chắn rằng Hoạt động chỉ là một bước trên lớp cho người thuyết trình, tôi đã đến để biết hôm nay. Sửa tôi nếu tôi sai. –

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