2011-08-17 40 views
13

tôi đang cố gắng để có được MVC trong dự án dòng lệnh của tôi.MVC trong dòng lệnh java

Tính đến bây giờ (không MVC, rõ ràng) Tôi có:

  • MainClass (tên giả rõ ràng), một băn khoăn sử dụng Menu vài lần nó tạo ra một đối tượng hệ thống
  • Menu (sử dụng bởi các chính để trình bày tùy chọn)
  • hệ thống, nó có một mô hình như một thuộc tính, được tạo ra với một tập tin hoặc bàn phím đầu vào, nó sử dụng các dữ liệu từ mẫu để thực hiện một thao tác đơn giản .calculate (valueA, VALUE tỷ), nơi valueA và VALUE tỷ được lựa chọn sử dụng menu từ một areay các thuộc tính của Model
  • Model (kin d) là vùng chứa dữ liệu tôi có.

Ai đó có thể đề xuất cho tôi cấu trúc phù hợp cho lớp học không?

Thanks a lot, Luke

+0

Ý anh là gì? Những gì MVC lớp thư viện? Loại UI nào? – bmargulies

+0

Tôi có nghĩa là mẫu ModelViewController –

+0

@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. –

Trả lời

14

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ó.

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