Tôi đã được yêu cầu viết GUI cho chương trình shell/cmdline hiện có được viết bằng Java và tôi muốn tạo một lớp trừu tượng giữa GUI và chương trình gốc giúp dễ dàng thêm GUI khác (web giao diện, ví dụ, chứ không phải là một ứng dụng máy tính để bàn). Tại thời điểm này, cấu trúc của chương trình là như sau:.Ưu điểm và nhược điểm của việc sử dụng XML để chuyển dữ liệu trong chương trình Java này là gì?
Các tùy chọn dòng lệnh ngay lập tức được dịch sang một Hashtable Java (dùng một tùy chọn như -f opt
để băm "-f=>opt"
Các tùy chọn này sau đó được sử dụng . thiết lập đối tượng environment
, mà chương trình sử dụng
cấu trúc tôi có trong tâm trí là:
Theo các đường liền nét, điều này có nghĩa là GUI tạo ra một tệp XML chứa thông tin giống như các tùy chọn shell/cmdline, sau đó được sử dụng để thiết lập tùy chọn environment
. Điều này là, tôi không hoàn toàn chắc chắn nếu đó là cách tốt nhất cho mọi thứ để làm việc (whence các đường chấm chấm, biểu thị các cấu trúc thay thế) và tôi cũng không biết nếu XML là sự lựa chọn đúng ở đây.
Vì nó là viết tắt, các phần của chương trình thiết lập đối tượng environment
từ options
được đặt cùng phương pháp như các phần sử dụng environment
để nhận kết quả. Vì vậy, sẽ dễ dàng hơn khi thực hiện một cái gì đó đã cung cấp các đối số shell/cmdline trực tiếp vào chương trình hơn là thực hiện một cấu trúc mà thông tin được truyền qua như một tệp XML. Tôi chắc chắn không muốn tạo tệp XML và sau đó dịch nó thành các tùy chọn trình bao và chuyển nó vào chương trình, nhưng nó có thể có ý nghĩa hơn cho GUI để tạo ra các tùy chọn trình bao thay vì tạo một XML. Ưu điểm chính của việc sử dụng một tệp XML như tôi thấy là nó làm cho công việc của các nhà phát triển trong tương lai dễ dàng hơn khi họ có thể sử dụng các thư viện hiện có để tạo các tệp XML thay vì phải lo lắng về việc nhận cú pháp -a opt1 -b opt2 -c opt3 [...]
. Mặt khác, tôi đã nghe nói rằng cố gắng tạo ngôn ngữ XML của riêng bạn là not to be taken lightly (mặc dù chương trình vì nó đứng lưu trữ dữ liệu trong các tệp XML không có DTD hoặc thậm chí một lược đồ theo như tôi có thể biết).
Cách tiếp cận của tôi ngày càng ít phải không? Hay tôi đang sử dụng các công cụ hoàn toàn không thích hợp cho công việc mà tôi đang cố gắng làm?
Câu hỏi được trình bày đẹp mắt, tuy nhiên tôi đã bỏ phiếu để đóng vì có vẻ như chủ quan/dựa trên ý kiến. –
xml có thể hơi nặng, bạn có thể cân nhắc sử dụng YAML hoặc JSON tại chỗ của nó. –
YAGNI & KISS - khái quát khi bạn có một GUI thứ hai cụ thể không dựa trên suy đoán về những gì có thể xảy ra, cho đến khi đó những gì sai với 'HashTable' đã được sử dụng. –