2016-05-12 19 views
5

Tôi đã xem xét áp dụng kiến ​​trúc Model View Presenter cho một dự án iOS mới. Sau khi đọc một số, tôi thấy rằng điều này post đã có ví dụ tốt nhất. Liên kết đến gist nguyên của mã here.Kiến trúc mô hình View Presenter và iOS (Swift)

Đáy của ví dụ có lắp ráp mã:

// Assembling of MVP 
let model = Person(firstName: "David", lastName: "Blaine") 
let view = GreetingViewController() 
let presenter = GreetingPresenter(view: view, person: model) 
view.presenter = presenter 

Bên cạnh đó, các quốc gia tác giả:

Kể từ khi chúng tôi không muốn xem để biết về Model, nó là không đúng để thực hiện lắp ráp trong trình điều khiển xem trình bày (đó là Xem), do đó chúng tôi phải làm điều đó ở một nơi khác. Ví dụ, chúng ta có thể làm cho dịch vụ Router ứng dụng rộng rãi sẽ chịu trách nhiệm thực hiện việc lắp ráp và trình bày View-to-View.

Câu hỏi của tôi:

  • tôi nên đặt lắp ráp mã ở đâu?
  • Tôi có thể tìm thêm ví dụ về bộ định tuyến trên toàn ứng dụng ở đâu?

Trả lời

1

Vì vậy, nó không chỉ cho tôi người đã tự hỏi về vấn đề này;)

Hãy để tôi chia sẻ với bạn phát hiện khác của tôi liên quan đến MVP trong iOS:

Screencast by David Gadd - Đó là một chút dài (1h 20min) và một chút cũ (tháng 12 năm 2012) nhưng chắc chắn đáng xem. Bạn sẽ thấy có cách MVP được thực hiện (trong AppCode) cho một ứng dụng rất nhỏ (cùng với một mô tả khá tốt về cách viết các bài kiểm thử đơn vị). Bộ định tuyến trong ứng dụng David đang tạo được gọi là ServiceLocator. Rất tiếc, tôi không thể tìm thấy mã để tải xuống cho screencast này (nhưng có thể tạo phiên bản ứng dụng này của riêng bạn trong khi xem nó).

Có thể có một số cách khác để tạo bộ định tuyến, nhưng màn hình này đã giúp tôi hiểu thêm một chút. Tôi khá mới với khái niệm MVP và tôi đã không sử dụng nó trong một ứng dụng lớn hơn (lớn hơn một màn hình-hãy-xem-cách-nó-done-app). Nó sẽ là tuyệt vời để xem làm thế nào MVP được thực hiện trong một ứng dụng thực tế đời sống ...

[EDIT]

Tôi vừa mới nhận ra tôi không trả lời câu hỏi đầu tiên của bạn.

Theo ứng dụng trong hình màn ảnh Router là một lớp học với phương pháp một lớp:

+ (id)resolve:(PresenterTypeEnum)type; 

Thực hiện phương pháp này bạn sẽ tìm thấy công tắc đơn giản. Căn cứ vào , hãy nhập gửi trong một phương thức tham số sẽ trả về phiên bản chính xác của người trình bày.

Phương thức này được gọi là chế độ xemDidLoad. Một khi bạn có thể hiện của một người trình bày, bạn chỉ cần đặt chế độ xem của người trình bày với chính mình.

Tôi hy vọng giải thích này rõ ràng. Dù sao, tôi rất khuyên bạn nên xem màn hình diễn viên, sau đó nó phải được rõ ràng như một tinh thể;)

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