Ánh xạ các thiết kế sang mã chương trình

6 406 1
Ánh xạ các thiết kế sang mã chương trình

Đang tải... (xem toàn văn)

Thông tin tài liệu

Ánh xạ thiết kế sang mã chương trình Ánh xạ thiết kế sang mã chương trình Bởi: Đoàn Văn Ban Ở không đề cập nhiều đến pha lập trình hướng đối tượng mà giới thiệu số cách ánh xạ kết thiết kế sang mã chương trình Cài đặt ngôn ngữ lập trình hướng đối tượng đòi hỏi phải viết mã nguồn cho: • Các phần định nghĩa lớp, • Các định nghĩa hàm thành phần Trong phần sau thảo luận phần sinh mã C++ cho thiết kế nêu Tạo lập định nghĩa lớp từ thiết kế biểu đồ lớp Trong pha thiết kế, biểu đồ lớp xây dựng chi tiết để mô tả đầy đủ tên gọi lớp, tên thuộc tính, hàm thành phần mối quan hệ đối tượng hệ thống Những kết đủ để tạo định nghĩa lớp ngôn ngữ lập trình hướng đối tượng C++ Định nghĩa lớp với hàm thuộc tính đơn Từ lớp thiết kế chi tiết, thực ánh xạ sau: - Các thuộc tính đơn chuyển tương ứng sang biến có kiểu liệu phù hợp, - Các hàm chuyển sang hàm prototype Định nghĩa lớp DongBanHangtrong C++ sau: 1/6 Ánh xạ thiết kế sang mã chương trình Định nghĩa lớp dựa vào biểu đồ lớp Khi định nghĩa, thường phải bổ sung thêm hàm tạo lập (constructor) để tạo đối tượng cần sử dụng chương trình Điều suy từ biểu đồ cộng tác hình 1, :DongBanHang nhận thông điệp create(mt, n) để tạo dòng bán hàng với mô tả mt số lượng n Điều toán tử tạo lập C++ hàm có tên với tên lớp hỗ trợ Chúng ta nhận thấy, liệu kết hàm subtotal() bị thay đổi, từ kiểu Number thiết kế chuyển thành float Nghĩa người lập trình chọn kiểu liệu thích hợp cho biến thuộc tính hàm, không thiết phải theo thiết kế Bổ sung thêm thuộc tính tham chiều Thuộc tính tham chiếu thuộc tính sử dụng để tham chiếu đến đối tượng phức hợp khác, kiểu liệu nguyên thuỷ Thuộc tính tham chiếu lớp xác định quan hệ kết hợp điều khiển thiết kế biểu đồ lớp Trong biểu đồ lớp hệ thống bán hàng, lớp DongBanHang có quan hệ kết hợp với MoTaMatHang mũi tên điều khiển hướng gửi thông điệp trao đổi thông tin Trong C++, điều có nghĩa lớp DongBanHangphải khai báo biến tham chiếu tới MoTaMatHang Thuộc tính tham chiếu thường không tường minh, chúng suy từ mối quan hệ biểu đồ lớp Đôi khi, vai trò đầu quan hệ có mặt biểu đồ lớp sử dụng tên thuộc tính tham chiếu Định nghĩa lớp DongBanHang, định nghĩa hoàn chỉnh hình 2/6 Ánh xạ thiết kế sang mã chương trình Bổ sung thêm thuộc tính tham chiếu vào lớp Tương tự trên, định nghĩa lớp khác, ví dụ lớp HBH định nghĩa hình Định nghĩa lớp HBH Định nghĩa hàm từ biểu đồ cộng tác Biểu đồ cộng tác cách thông điệp gửi đến cho đối tượng lời gọi hàm Dãy thông điệp nhận dịch tương ứng sang dãy lệnh định nghĩa hàm thành phần lớp 3/6 Ánh xạ thiết kế sang mã chương trình Chúng ta xét biểu đồ cộng tác mô tả nhiệm vụ enterItems (nhập liệu vào) dựa vào để định nghĩa hàm enterItems() Biểu đồ cộng tác cho enterItems Thông điệp enterItems gửi cho đối tượng HBH, vậy, lớp HBH có hàm enterItems() định nghĩa sau: public void enterItems(UPC upc, int soLuong); Thông điệp 1: Theo biểu đồ trên, để thực nhiệm vụ enterItems() trước tiên phải tạo :PhienBanHang mới, mặt hàng nhập vào Nghĩa if (isNewSale()){banHang = new PhienBanHang();} Hàm cần khảo sát là: isNewSale() Hàm khai báo private, làm nhiệm vụ kiểm tra xem biến đối tượng PhienBanHang có rỗng hay không, nghĩa đối tượng PhienBanHang chưa thiết lập kết thúc phiên bán hàng trước Vậy private int isNewSale(){return (banHang == null) || banHang.isComplete();}C++ kiểu Boolean, xem giá trị biểu thức khác (true) sai (false) Hàm bổ sung vào lớp HBH hàm xác định hình Thông điệp 2: Tiếp theo, thông điệp gửi cho :DanhMucMatHang để xác định thông tin mặt hàng có mã upc DanhMucMatHang moTa = muc.specification(upc); muc đối tượng DanhMucMatHang 4/6 Ánh xạ thiết kế sang mã chương trình Thông điệp 3: Thông điệp thứ ba makeLineItem gửi cho :PhienBanHang để xác lập dòng bán hàng thông qua đối tượng banHang banHang.makeLineItem(moTa, soLuong); Tóm lại, thông điệp gửi để thực yêu cầu thông điệp biểu đồ cộng tác, ánh xạ thành dãy câu lệnh tương ứng định nghĩa hàm thành phần ứng với thông điệp Theo nguyên tắc đó, hàm enterItems() định nghĩa đầy đủ sau: public void enterItems(UPC upc, int soLuong){ if (isNewSale()){banHang = new PhienBanHang();} DanhMucMatHang moTa = muc.specification(upc); banHang.makeLineItem(moTa, soLuong); } Định nghĩa hàm makeLineIte m () Xét tiếp biểu đồ cộng tác cho enterItems(upc, soLuong) , lớp PhienBanHang nhận thông điệp makeLineItem(moTa, soLuong) Để thực yêu cầu này, lại phải gửi hai thông điệp: 3.1: create(moTa, soLuong) cho sl: DongBanHang 3.2: adds(sl) cho tập đối tượng :DongBanHang Do đó, hàm makeLineItem() lớp PhienBanHang định nghĩa sau: public void makeLineItem(MoTaMatHang moTa, int soLuong){ lineItem.addElement(new DongBanHang(moTa, soLuong); } Thứ tự cài đặt lớp Các lớp cần cài đặt từ lớp cặp yếu dần đến lớp cặp cao Những lớp chọn để cài đặt hệ HBH là: ThanhToan, MoTaMatHang, sau DanhMucMatHang, PhienBanHang, đến HBH CuaHang, v.v hình 5/6 Ánh xạ thiết kế sang mã chương trình Thứ tự cài đặt lớp 6/6 .. .Ánh xạ thiết kế sang mã chương trình Định nghĩa lớp dựa vào biểu đồ lớp Khi định nghĩa, thường phải bổ sung thêm hàm tạo lập (constructor) để tạo đối tượng cần sử dụng chương trình Điều... Biểu đồ cộng tác cách thông điệp gửi đến cho đối tượng lời gọi hàm Dãy thông điệp nhận dịch tương ứng sang dãy lệnh định nghĩa hàm thành phần lớp 3/6 Ánh xạ thiết kế sang mã chương trình Chúng ta... :DanhMucMatHang để xác định thông tin mặt hàng có mã upc DanhMucMatHang moTa = muc.specification(upc); muc đối tượng DanhMucMatHang 4/6 Ánh xạ thiết kế sang mã chương trình Thông điệp 3: Thông điệp thứ ba

Ngày đăng: 12/03/2016, 11:53

Mục lục

  • Ánh xạ các thiết kế sang mã chương trình

  • Tạo lập các định nghĩa lớp từ những thiết kế biểu đồ lớp

    • Định nghĩa hàm từ biểu đồ cộng tác

Tài liệu cùng người dùng

Tài liệu liên quan