2011-07-17 24 views

Trả lời

8

Đó là một quyết định thiết kế phụ thuộc vào những gì bạn đang cố gắng hoàn thành. Nếu mô hình của bạn chỉ có ý nghĩa trong ngữ cảnh của một dịch vụ hoặc nếu bạn muốn mô hình của mình cung cấp quyền truy cập vào tất cả dữ liệu trên máy chủ, thì hãy tạo kết nối với máy chủ vào mô hình dữ liệu của bạn. Điều này có thể có ý nghĩa nếu bạn đang, ví dụ, xây dựng một khách hàng cho một dịch vụ như Twitter hoặc Flickr.

Mặt khác, nếu bạn chỉ lấy một tập tin từ một máy chủ và đó là kết thúc của nó, nó có thể làm cho tinh thần để làm các thông tin liên lạc trong bộ điều khiển. Bộ điều khiển có xu hướng ít có thể tái sử dụng hơn và tùy biến hơn cho hành vi cụ thể của ứng dụng. Giữ các chi tiết cụ thể về nơi dữ liệu đến từ mô hình làm cho mô hình có thể sử dụng lại được. Nó cũng làm cho nó dễ dàng để kiểm tra - bạn có thể viết mã kiểm tra mà chỉ cần đọc một tập tin địa phương và lưu trữ dữ liệu trong mô hình.

+0

Đây là những gì tôi nhận được, +1 – Nektarios

+0

Đây không phải là lý do duy nhất để đưa ra quyết định, nhưng việc liên lạc với máy khách trong bộ điều khiển cũng có lợi thế là bạn có thể không cần triển khai [thông báo] (https : //developer.apple.com/library/ios/documentation/general/conceptual/devpedia-cocoacore/MVC.html) cơ chế từ mô hình đến bộ điều khiển. – Drux

0

Đó là một câu hỏi hay. Tôi nghĩ cách tốt nhất là thông qua một bộ điều khiển bởi vì nó tách riêng mô hình của bạn khỏi việc yêu cầu mô hình khác có mặt để nó hoạt động đúng cách. Mặc dù tôi không nghĩ rằng bạn vi phạm "mvc thích hợp" bằng cách thực hiện nó trong mô hình.

0

Tôi nghĩ bạn muốn đặt nó trong mô hình. Những gì bạn sẽ làm là thẩm vấn mô hình cho dữ liệu và sau đó mô hình sẽ xử lý cách tự cư trú cho dù đó là từ kho lưu trữ dữ liệu nội bộ hay mô hình bên ngoài (như máy chủ).

0

Một cách tiếp cận là sử dụng mẫu kho lưu trữ. Để làm điều này, bạn tạo các đối tượng Repository trong thư mục Model của bạn và bạn đặt tất cả các phương thức liên quan đến cơ sở dữ liệu vào chúng. Bộ điều khiển của bạn gọi các lớp kho lưu trữ để lấy dữ liệu. Điều này cho phép bạn tách các đối tượng mô hình thực khỏi các phương thức truy cập cơ sở dữ liệu.

0

tôi sử dụng mô hình MVCS (MVC-Store), mà tôi phát hiện ra trong cuốn sách của Aaron Hillegass của "IOS Lập trình: The Big Nerd Ranch Hướng dẫn" (http://www.bignerdranch.com/book/ios_programming_the_big_nerd_ranch_guide_rd_edition_)

Các cửa hàng được thiết kế đặc biệt để lấy dữ liệu, cho dù dữ liệu đến từ máy chủ, tệp cục bộ, bộ sưu tập liên tục, cơ sở dữ liệu, v.v.

Nó cho phép tạo các ứng dụng rất phát triển. Ví dụ, bạn có thể xây dựng ứng dụng của bạn dựa trên một dịch vụ web và ngày bạn muốn lưu dữ liệu của mình, bạn chỉ cần sửa đổi cửa hàng mà không phải sửa đổi một dòng mã trong bộ điều khiển của mình.

Nó rất giống Pattern Repository (http://msdn.microsoft.com/en-us/library/ff649690.aspx) (cf BobTurbo của câu trả lời)

0

Cá nhân tôi muốn làm cho một DAO, hoặc lớp dữ liệu helper. Rất khó để theo sát MVC nghiêm ngặt trong mục tiêu C khi mọi thứ trở nên phức tạp hơn. Tuy nhiên, đặt nó vào mô hình hoặc VC cũng không sai.

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