Danh mục

Động lực học lập trình Java, Phần 3: Ứng dụng sự phản chiếu Xây dựng một khung công tác cho các đối số dòng lệnh

Số trang: 16      Loại file: pdf      Dung lượng: 202.42 KB      Lượt xem: 9      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Dennis Sosnoski, Nhà tư vấn, Sosnoski Software Solutions, Inc. Tóm tắt: Xử lý đối số dòng lệnh là một trong những việc vặt khó chịu mà dường như vẫn tiếp tục xảy ra xung quanh bất kể bạn đã phải giải quyết nó mất bao nhiêu lần trong quá khứ. Thay vì viết các thay đổi của cùng mã lặp đi lặp lại, tại sao không sử dụng sự phản chiếu để đơn giản hóa công việc xử lý đối số? Nhà tư vấn Java Dennis Sosnoski chỉ cho bạn thấy cách làm thế nào. Trong bài này, Dennis phác...
Nội dung trích xuất từ tài liệu:
Động lực học lập trình Java, Phần 3: Ứng dụng sự phản chiếu Xây dựng một khung công tác cho các đối số dòng lệnh Động lực học lập trình Java, Phần 3: Ứng dụng sự phản chiếu Xây dựng một khung công tác cho các đối số dòng lệnh Dennis Sosnoski, Nhà tư vấn, Sosnoski Software Solutions, Inc. Tóm tắt: Xử lý đối số dòng lệnh là một trong những việc vặt khó chịu mà dường như vẫn tiếp tục xảy ra xung quanh bất kể bạn đã phải giải quyết nó mất bao nhiêu lần trong quá khứ. Thay vì viết các thay đổi của cùng mã lặp đi lặp lại, tại sao không sử dụng sự phản chiếu để đơn giản hóa công việc xử lý đối số? Nhà tư vấn Java Dennis Sosnoski chỉ cho bạn thấy cách làm thế nào. Trong bài này, Dennis phác thảo một thư viện mã nguồn mở, cho phép tạo các đối số dòng lệnh để tự xử lý trên thực tế. Trong bài viết tháng trước, tôi đã giới thiệu Java Reflection API (API phản chiếu Java) và đã trình bày qua một số khả năng cơ bản của nó. Tôi cũng xem xét kỹ hiệu năng phản chiếu và kết thúc bằng một số hướng dẫn khi nào cần hay không cần sử dụng sự phản chiếu trong một ứng dụng. Trong bài viết tháng này, tôi sẽ đi xa hơn bằng cách xem xét một ứng dụng dường như là một sự phối hợp tốt cho những điểm mạnh và điểm yếu của sự phản chiếu: một thư viện để xử lý đối số dòng lệnh. Tôi sẽ bắt đầu bằng cách trước tiên xác định vấn đề cần giải quyết, sau đó thiết kế một giao diện cho thư viện đó trước khi thực sự đi vào đoạn mã thực hiện. Kinh nghiệm thực tế của tôi về phát triển thư viện chưa được cấu trúc như vậy -- tôi bắt đầu nỗ lực để làm đơn giản hóa mã hiện có trong một họ các ứng dụng dùng một cơ sở mã chung, sau đó tổng quát hóa từ đó. Tuy nhiên, trình tự theo đường thẳng định nghĩa-thiết kế-xây dựng trong bài viết này ngắn gọn hơn nhiều so với một mô tả đầy đủ quá trình phát triển và trong quá trình tổ chức nó theo cách này tôi đã sửa lại một số giả định ban đầu của tôi và xóa hết một vài khía cạnh của mã thư viện. Hy vọng rằng, bạn sẽ tìm thấy nó có ích như là một mô hình để phát triển các ứng dụng dựa trên sự phản chiếu của riêng bạn. Xác định vấn đề Tôi đã viết nhiều ứng dụng Java bằng cách sử dụng các đối số từ dòng lệnh. Hầu hết được bắt đầu thực sự nhỏ, nhưng một số đã kết thúc phát triển ngày càng xa kế hoạch ban đầu của tôi. Có một mô hình chuẩn mà tôi đã quan sát thấy theo cách quá trình này hoạt động với tôi: Đừng bỏ lỡ phần còn lại của loạt bài này Phần 1, Các lớp Java và nạp lớp (04.2003) Phần 2, Giới thiệu sự phản chiếu (06.2003) Phần 4, Chuyển đổi lớp bằng Javassist (09.2003) Phần 5, Việc chuyển các lớp đang hoạt động (02.2004) Phần 6, Các thay đổi hướng-khía cạnh với Javassist (03.2004) Phần 7, Kỹ thuật bytecode với BCEL (04.2004) Phần 8, Thay thế sự phản chiếu bằng việc tạo mã (06.2004) 1. Bắt đầu với một hoặc hai đối số cần thiết theo một thứ tự cụ thể. 2. Hãy suy nghĩ về nhiều thứ mà ứng dụng nên làm, sau đó thêm vào nhiều đối số nữa. 3. Cảm thấy mệt mỏi về việc gõ tất cả các đối số mỗi lần, vì thế hãy tạo ra một số đối số tùy chọn, với các giá trị mặc định. 4. Quên thứ tự của các đối số, do đó thay đổi mã để cho phép chúng theo thứ tự bất kỳ. 5. Cung cấp ứng dụng cho những người khác đang quan tâm. Họ không biết những gì các đối số có nghĩa vụ phải làm, do đó, thêm phần kiểm tra lỗi tốt hơn và trợ giúp các mô tả cho các đối số. Theo thời gian tôi đi đến bước 5 tôi thường thấy tiếc là tôi đã bắt đầu toàn bộ quá trình tại vị trí đầu tiên. May mắn thay, tôi có xu hướng quên các giai đoạn sau khá nhanh và trong vòng một hoặc hai tuần tôi sẽ nghĩ về một ứng dụng dòng lệnh khác đơn giản một chút mà tôi muốn có. Sau đó nó chỉ còn là một vấn đề thời gian trước khi lặp đi lặp lại toàn bộ chu kỳ khó chịu đó. Có một số thư viện có sẵn để trợ giúp việc xử lý đối số dòng lệnh. Tuy nhiên, tôi sẽ bỏ qua chúng và đi theo cách riêng của mình trong bài viết này. Đây không phải (chỉ) vì tôi có một quan điểm không sáng tác ở đây, mà là để sử dụng việc xử lý đối số như là một ví dụ. Khi điều đó xảy ra, các điểm mạnh và điểm yếu của sự phản chiếu là một sự phối hợp tốt với các yêu cầu cho một thư viện xử lý đối số. Cụ thể là, một thư viện xử lý đối số: Cần một giao diện linh hoạt để hỗ trợ một loạt các ứng dụng.  Phải dễ dàng cấu hình cho mỗi ứng dụng.  Không đòi hỏi hiệu năng cao nhất, vì các đối số chỉ được xử lý một lần.  Không có vấn đề bảo mật truy cập, vì các ứng dụng dòng lệnh thường chạy  mà không có một trình quản lý bảo mật. Mã phản chiếu thực tế trong thư viện này trình bày chỉ một phần nhỏ việc của việc thực hiện đầy đủ, vì vậy tôi sẽ chủ yếu tập trung vào các khía cạnh hầu như có liên quan đến sự phản chiếu. Nếu bạn muốn tìm hiểu thêm về thư viện này (và có lẽ sử dụng nó cho các ứng dụng dòng lệnh đơn giản của riêng bạn), bạn sẽ tìm các liên kết tới các trang Web trong phần Tài nguyên. Hỏi chuyên gia: Dennis Sosnoski về các vấn đề JVM và bytecode Đối với các ý kiến hay các câu hỏi về tài liệu được trình bày trong loạt bài này, cũng như bất cứ điều gì khác có liên quan đến Java bytecode, định dạng lớp nhị phân Java hoặc các vấn đề JVM chung, hãy truy cập vào diễn đàn thảo luận JVM và Bytecode, do Dennis Sosnoski kiểm soát. Phác thảo một thiết kế Có lẽ cách thuận tiện nhất để một ứng dụng truy cập dữ liệu đối số l à thông qua các trường của đối tượng chính của ứng dụng. Ví dụ, giả sử bạn đang viết một ứng dụng tạo ra các kế hoạch kinh doanh. Bạn có thể muốn sử dụng một cờ boolean (toán tử boolean) để kiểm soát xem kế hoạch kinh doanh có ngắn gọn hay d ài dòng không, một int cho doanh thu năm đầu tiên, một float cho tỷ lệ tăng trưởng doanh thu hỗn hợp dự kiến và một String cho việc mô tả sản phẩm. Tôi sẽ gọi các biến này, đó là các biến có ảnh hưởng đến hoạt động của các tham số ứng dụng để phân biệt chúng với các đối số thực tế (các giá trị cho các biến tham số) được cung cấp trên dòng lệnh. Việc sử dụng các trường cho các tham số này sẽ làm ...

Tài liệu được xem nhiều: