2010-08-17 34 views
28

Tôi đã nhìn thấy mã được viết nơi hầu như tất cả các mã không liên quan đến tuyến đường được chuyển đến một mô hình. Tôi cũng đã nhìn thấy mã nơi mà tất cả sự kiên trì của cơ sở dữ liệu được xử lý bởi một mô hình, nhưng việc xử lý không phải DB được xử lý bởi bộ điều khiển.trong MVC, bạn vẽ đường thẳng giữa bộ điều khiển và mô hình ở đâu?

Cách tiếp cận nào tốt hơn?

+2

thể dup? http://stackoverflow.com/questions/467113/fat-models-skinny-controllers-and-the-mvc-design-pattern –

Trả lời

39

Đường giữa bộ điều khiển và mô hình thực sự khá rõ ràng.

Mô hình là trái tim của ứng dụng của bạn. Nó chứa logic nghiệp vụ/miền cần thiết để giải quyết vấn đề mà ứng dụng của bạn đã được viết. Mô hình thường được xếp thành nhiều lớp khác, ví dụ: kiên trì, dịch vụ, tên miền, v.v. Đó là một quan niệm sai lầm phổ biến rằng Mô hình chỉ là cơ sở dữ liệu, nhiều như nó là một quan niệm sai lầm phổ biến rằng cơ sở dữ liệu phải là một ActiveRecord.

Bộ điều khiển (và chế độ xem) là một phần của lớp trình bày. Trách nhiệm duy nhất của một bộ điều khiển là nhận và xử lý đầu vào của người dùng hướng tới ứng dụng của bạn và ủy quyền điều này cho các phần thích hợp trong mô hình. Chỉ có bấy nhiêu thôi. Nó không nên xử lý luồng ứng dụng phức tạp hoặc mã của miền vấn đề của bạn. You want controllers to be skinny and models fat with logic. Model không nên biết về một trong hai C hoặc V và bạn sẽ có thể trao đổi trên V và C cho một lớp trình bày khác nhau mà không cần phải chạm vào M. bạn

Xem MVC Excerpt in Patterns of Enterprise Application Architecture

+2

Tôi đứng (hoặc đúng hơn, ngồi trên ghế của tôi tại bàn máy tính của tôi ...) sửa chữa. +1 – BoltClock

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