2012-01-08 25 views
15

Đối với một dự án tôi đã làm việc trên một ứng dụng máy tính để bàn JavaFX 2.0 (một giao diện người dùng keytool). Cách thức hoạt động của JavaFx2.0 (trong dự án anyways của tôi), việc xử lý sự kiện UI diễn ra trong các lớp UI của JavaFX 2.0 (ví dụ: các sự kiện onclicked() hoặc các trình lắng nghe thay đổi thuộc tính). Ngay bây giờ tôi sử dụng một lớp tĩnh với một phương thức: getController(), tất cả các lớp UI sử dụng để truy cập vào một bộ điều khiển của ứng dụng (bằng cách nào đó có vẻ lộn xộn với tôi).).Làm thế nào để tổ chức bộ điều khiển/diễn giả trong một ứng dụng JavaFx 2.0 lớn?

Tuy nhiên, vấn đề là một bộ điều khiển đang nhận được rất lớn! Nó có quá nhiều phương thức (tất cả các phương thức logic nghiệp vụ cần được truy cập bởi các lớp UI của tôi). Mặc dù nó chỉ truyền các phương thức gọi đến mô hình/dịch vụ của tôi, vẫn còn rất nhiều ngoại lệ cần phải được bắt gặp ở cấp điều khiển để xử lý chúng trong giao diện người dùng (hiển thị thông báo lỗi, v.v.).

Bất cứ ai biết cách làm cho toàn bộ mẫu MVC/MVP này hoạt động tốt hơn cho ứng dụng của tôi mà không có lớp UI/Controller/Model trực tiếp phụ thuộc vào nhau? Có lẽ một bộ điều khiển khác nhau cho từng trường hợp sử dụng? Nhưng sau đó làm thế nào tôi sẽ làm cho nó để các lớp UI phải được quyền điều khiển mà không trực tiếp biết nó? Có thể sử dụng giao diện?

+0

Không rõ bộ điều khiển của bạn làm gì. – toto2

+0

Có thể chia giao diện người dùng của bạn thành các phần mà mỗi bộ điều khiển có bộ điều khiển riêng? – Tower

Trả lời

3

Tôi không thực sự biết Java FX, vì vậy bạn nên lấy câu trả lời của tôi với một hạt muối. Tôi nhìn một chút tại Java FX hướng dẫn, nhưng tất cả họ dường như là những ví dụ nhỏ không có kiến ​​trúc của bất kỳ loại ... MVC hoặc khác.

Có thể bạn không nên cố gắng quá mức để có mẫu MVC sạch. Dường như với tôi rằng mỗi phần tử giao diện người dùng chính là đơn vị MVC, ví dụ: một nhãn chứa văn bản (mô hình), biểu diễn đồ họa của nó (khung nhìn) và nó xử lý các sự kiện (bộ điều khiển).

Bạn có thể làm cho cuộc sống của mình trở nên đau đớn hơn bằng cách cố gắng có một bộ điều khiển toàn cầu riêng biệt.

Tuy nhiên, bạn có thể giữ mô hình riêng biệt, ví dụ: nếu bạn đang hiển thị nội dung của cơ sở dữ liệu (mô hình). Tuy nhiên nếu bạn đang làm một cái gì đó khá đơn giản, chỉ cần sử dụng trạng thái của giao diện người dùng như mô hình của bạn sẽ là đủ; việc giữ dữ liệu (mô hình) một cách riêng biệt trong chương trình sẽ chỉ làm cho bạn lãng phí thời gian đồng bộ hóa dữ liệu trong giao diện người dùng và dữ liệu trong mô hình riêng biệt. Sao chép dữ liệu là điều ác và nên tránh càng nhiều càng tốt.

1

Có một loạt blog ở đây Building JEE applications in JavaFX 2.0 có thể giúp bạn. Nó trình bày một số mẫu với ví dụ về cách tách các thành phần khác nhau (MVP) trong một ứng dụng JavaFx2.

2

Tôi đề nghị bạn thử nghiệm Khung JRebirth

Nó cung cấp một mẫu đơn giản nhưng mạnh mẽ sẽ giúp bạn cấu trúc ứng dụng của mình.

Khung làm việc này còn trẻ và sẽ được cải thiện theo phản hồi nhận được. Đừng ngần ngại gửi một số.

http://www.jrebirth.org/doc/Overview.html

Kiểm tra trang tổng quan và mã nguồn được cung cấp để tìm hiểu thêm.

Live Demo cũng có sẵn

+0

liên kết này bị hỏng – James

+0

liên kết được khôi phục (tạm thời ngừng hoạt động) –

+0

Liên kết bị hỏng lần nữa. – Derek

0

Tôi đã đặt một hướng dẫn cơ bản về my website trong một thời gian trước đây về cách mô hình MVC có thể được thực hiện sử dụng Java và JavaFX 2. Lớp mô hình được luôn tách riêng và không nên biết gì về bộ điều khiển và trình xem.Nếu đây là một dự án lớn, tôi sẽ khuyên bạn nên sử dụng các mô-đun mà bạn có mô hình, người xem và bộ điều khiển của bạn trong đó. Mô-đun có thể là cổng quản trị hoặc trình xem bản đồ google, v.v.

http://www.pergande.net/blog/article/post/Javafx+2.0+MVC/id/1

+2

Liên kết bị hỏng ngay bây giờ – Andrew

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