Tôi thực sự ngạc nhiên bởi phản ứng tiêu cực cho câu hỏi này, vì nó là một câu khá thú vị. Tôi hy vọng đó là bởi vì hầu hết mọi người cho rằng MVC chỉ có ý nghĩa trong môi trường web, nhưng MVC hoàn toàn có thể áp dụng cho một chương trình CLI. Nó chỉ trình bày một phương tiện xem khác nhau. Trong thực tế, tôi muốn xem xét nó là thiết kế MVC bậc nhất có thể cắm vào CLI, GUI hoặc web "view" mà không có bất kỳ sự thay đổi nào đối với bộ điều khiển và các phần mô hình.
Tất cả những gì MVC nói là, cho một ứng dụng, bạn trừu tượng càng nhiều càng tốt phần xem - bản trình bày của ứng dụng, những gì người dùng nhìn thấy và tương tác - từ logic thực, nội bộ của ứng dụng. Cách bạn làm điều đó là tạo các bộ điều khiển "dán" khung nhìn và bất kỳ điều khiển nào tồn tại trong đó vào logic ở mặt sau. Nói một cách đơn giản, bộ điều khiển dịch đầu vào của người dùng vào các cuộc gọi phương thức và dịch các giá trị trả lại trở thành nội dung hữu ích cho người dùng. Phần mô hình của mẫu được tranh luận một chút. Một số người nói rằng mỗi phần riêng biệt của biểu đồ đối tượng được gửi đến chế độ xem để hiển thị là một mô hình "". Những người khác cho rằng toàn bộ đồ thị đối tượng stateful sống trong back-end là các "mô hình", và điều khiển hình thành một cái gì đó của một gương soi cho phép người xem chọn ra, kiểm tra và sửa đổi phần cụ thể của mô hình. Câu hỏi thực sự là liệu có nhiều mô hình liên tục chảy qua lại hay một, mô hình lớn cần phải được phơi bày theo cách mà người dùng có thể hiểu được.
Để có được để MVC trong một CLI - hoặc bất kỳ loại ứng dụng - có một phần của mã đó là xác định rõ ràng như xem/trình bày. Nó sẽ không bao giờ, bao giờ có bất cứ điều gì giống như logic kinh doanh trong đó. (Các) bộ điều khiển của bạn nên là đối tượng biết cách phản hồi đầu vào của người dùng và có thể gửi lại mọi thứ để xem, mặc dù không có bất kỳ giả định nào về cách những thứ đó sẽ được hiển thị hoặc chính xác những gì sẽ được nhập. Mô hình này, theo cách này hay cách khác, về cơ bản là dữ liệu thực tế hoặc "công cụ" mà người dùng quan tâm và không nên quan tâm đến chế độ hiển thị hoặc bộ điều khiển ... um ... kiểm soát nó.
Nguồn
2011-08-18 01:15:25
Ý anh là gì? Những gì MVC lớp thư viện? Loại UI nào? – bmargulies
Tôi có nghĩa là mẫu ModelViewController –
@Luke, đó là mẫu thiết kế hoặc biệt hiệu cho thư viện hiện có. Nếu sau này, thư viện nào? Nếu trước đây, câu hỏi của bạn là vô nghĩa. –