2012-01-30 49 views
15

Gần đây tôi đã đọc Fragments (chưa sử dụng ứng dụng này) và biết rằng nó có thể được sử dụng trong phát triển ứng dụng điện thoại.MVC design pattern cho phát triển ứng dụng android bằng cách sử dụng Fragments như Views và Activity như Controller

Tôi đang suy nghĩ về việc sử dụng Fragments để triển khai mẫu thiết kế MVC (model-view-controller). Nhiều người cho rằng sự phát triển Android tuân theo MVC theo mặc định. Nhưng tôi thấy Các hoạt động giống như Chế độ xem và có sự thiếu nhất định của một bộ điều khiển khi một hoạt động khác đang được/sẽ được khởi chạy. Vì vậy, tôi đang nghĩ đến việc sử dụng "Những mảnh vỡ" như "Views" với một đĩa đơn "Hoạt động" như "điều khiển" và hoán đổi/thêm/xóa các mảnh vỡ và khi cần thiết.

Vì vậy, cách tiếp cận cơ bản của tôi là như thế này.

1) Người dùng tương tác với giao diện người dùng (Phân đoạn).

2) Bộ điều khiển (Hoạt động) xử lý sự kiện từ Phân đoạn và chuyển nó đến một mô hình (Backendthread/Service).

3) Mô hình (Backendthread/Service) thông báo cho bộ điều khiển về sự thay đổi trạng thái của mô hình.

4) Bộ điều khiển (Hoạt động) thông báo UserInterface (Phân đoạn) mà inturn thông báo cho Người dùng.

cách tiếp cận của tôi là nghi thức hoặc chi phí không cần thiết hoặc nhận thức của tôi về các đoạn là sai?

Hãy làm rõ tôi.

+1

Tôi muốn xem ví dụ về mã của bạn khi bạn sẽ có một cái gì đó hoạt động – IamStalker

Trả lời

22

IMHO, các đoạn là bộ điều khiển. Giỏ vật dụng của phân đoạn thể hiện quan điểm. Các hoạt động là một lớp dàn nhạc, xác định những mảnh vỡ (và các vật dụng của chúng) là cần thiết trong một hoàn cảnh nhất định (ví dụ: một trên điện thoại, hai trên máy tính bảng) nhưng nếu không có logic kinh doanh hạn chế.

Điều đó đang được nói, Android và các mẫu như MVC không nhất thiết phải đi cùng nhau. Tôi không nghĩ rằng ý định của Google là tạo ra một khuôn khổ MVC thuần túy.

+2

+1 cho một đoạn nhà phát triển iOS có ý nghĩa hơn vì chúng giống như ViewControllers hơn. Nhưng Hoạt động có gì đó khác ... –

+0

Đồng ý. Tôi tìm thấy giải thích thêm về chủ đề này tại đây http://stackoverflow.com/questions/6245722/android-design-patterns – manjusg

+1

Cảm ơn câu trả lời này Mark. Bạn chắc chắn đã thuyết phục tôi rằng các đồng nghiệp của tôi, với nền tảng iOS, đã đi đúng hướng. Đó là một điều đáng tiếc không có một hướng dẫn thiết kế phần mềm Android vững chắc nhấn mạnh thực hành này. – Snicolas

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