2011-05-08 30 views
11

thể trùng lặp:
Alternatives to the MVCCác giải pháp thay thế cho kiến ​​trúc MVC để phát triển web là gì?

Tôi đã tìm kiếm xung quanh giải pháp thay thế chỉ để xem những gì có sẵn, nhưng tôi hầu như không thể tìm thấy bất cứ điều gì.

Tôi đã đọc trong nhiều bài viết mà web MVC không bao giờ đúng MVC vì một số lý do quá kỹ thuật để tôi thực sự nắm bắt được. Và đôi khi nó được đề xuất để tìm kiếm một thứ khác, nhưng cái gì là elses, các loại kiến ​​trúc khác là gì? Tôi có thể đọc thêm về nó ở đâu? Ai đó có thể cung cấp thêm chi tiết về những gì có sẵn không?

Nhân tiện, tôi đã đọc về kiến ​​trúc 3 tầng, theo ý kiến ​​của tôi là khá giống nhau, trừ khi được chứng minh khác đi.

Còn gì nữa?

+0

cũng [để MVC gì Alternatives Có phải có?] (Http://stackoverflow.com/q/24496) – ale

Trả lời

5

Xin lỗi, không có bất kỳ dễ dàng để tiêu hóa so sánh. Nhưng có ví dụ mẫu Model-View-Presenter đã thay thế MVC, và thực sự gần gũi hơn với hầu hết các khung công tác PHP thực tế. http://richnewman.wordpress.com/2008/02/26/model-view-presenter-variations-on-the-basic-pattern-introduction-to-cabscsf-part-24/

Các bài viết như http://c2.com/cgi/wiki?TemplatingInPhp giả sử rằng chính PHP là mô hình tốt nhất cho các ứng dụng web và các mẫu thay vì mẫu không thêm đủ lợi ích.

Bên cạnh PAC, còn có Model-View-ViewModel (hiện là chủ đề nóng trong C# nhưng không phải trong PHP) và Model-Delegate http://c2.com/cgi/wiki?ModelDelegate mở rộng theo MVC. Nhưng chúng có thể không hữu ích cho các ứng dụng web chung.

1

Model-View-Controller là một khái niệm khá tốt, nhưng việc diễn giải bằng một khung công tác có thể khác nhau. Thông thường "xem" là một mẫu với một số logic trong đó. Mô hình thường được mô tả như một tài liệu XML hoặc YAML. Cuối cùng Controller là một đoạn mã trong ngôn ngữ lập trình.

Phương án thay thế được đề xuất của tôi dựa trên thiết kế hướng đối tượng. Xem là một đối tượng. Mô hình là một đối tượng. Controller cũng là một đối tượng. Điều này mở ra posibilites đến một mức độ cao hơn về hiệu quả, đơn giản và tái sử dụng mã.

Nguyên tắc này là implemented in my web development framework và tôi cũng đang diễn tả nó in details in my blog post — Object Oriented MVC

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