KIẾN TRÚC HỆ THỐNG VÀ PHÁT SINH MÃ TRèNH
7.4.1 Tạo lập cỏc định nghĩa lớp từ những thiết kế biểu đồ lớp
Trong pha thiết kế, biểu đồ lớp được xõy dựng chi tiết để mụ tả đầy đủ tờn gọi của lớp, tờn cỏc thuộc tớnh, cỏc hàm thành phần và mối quan hệ của cỏc đối tượng trong hệ thống. Những kết quả đú đủ để tạo ra cỏc định nghĩa lớp trong ngụn ngữ lập trỡnh hướng đối tượng như C++.
Định nghĩa lớp với cỏc hàm và thuộc tớnh đơn
Từ cỏc lớp đó được thiết kế chi tiết, thực hiện ỏnh xạ như sau:
- Cỏc thuộc tớnh đơn được chuyển tương ứng sang cỏc biến cú kiểu dữ liệu phự hợp,
- Cỏc hàm được chuyển sang cỏc hàm prototype. Vớ dụ, định nghĩa lớp DongBanHang trong C++ như sau:
Hỡnh 7-4 Định nghĩa lớp dựa vào biểu đồ lớp
* Được-mụ-tả-bởi 1 DongBanHang soLuong: int subtotal(): Number MoTaMatHang upc: UPC giaBan: Number moTa: Text class DongBanHang{
DongBanHang(MoTaMatHang mTa, int soLuong); public float subtotal();
private int soLuong; }
Lưu ý: khi định nghĩa, chỳng ta thường phải bổ sung thờm hàm tạo lập
(constructor) để tạo ra những đối tượng khi cần sử dụng trong chương trỡnh. Điều này cũng được suy ra từ biểu đồ cộng tỏc hỡnh 6.20, trong đú :DongBanHang nhận được thụng điệp create(mt, n ) để tạo ra dũng bỏn hàng với mụ tả là mt và số lượng là n.
Điều này được toỏn tử tạo lập trong C++ là hàm cú cựng tờn với tờn của lớp hỗ trợ. Chỳng ta cũng nhận thấy, dữ liệu kết quả của hàm subtotal() là đó bị thay đổi, từ kiểu Number trong thiết kế được chuyển thành float. Nghĩa là người lập trỡnh cú thể chọn những kiểu dữ liệu thớch hợp cho cỏc biến thuộc tớnh và cỏc hàm, chứ khụng nhất thiết phải theo đỳng bản thiết kế.
Bổ sung thờm cỏc thuộc tớnh tham chiều
Thuộc tớnh tham chiếu là thuộc tớnh được sử dụng để tham chiếu đến đối tượng phức hợp khỏc, khụng phải là những kiểu dữ liệu nguyờn thuỷ.
Thuộc tớnh tham chiếu của một lớp được xỏc định bởi những quan hệ kết hợp và sự điều khiển trong thiết kế biểu đồ lớp.
Vớ dụ: trong biểu đồ lớp của hệ thống bỏn hàng, lớp DongBanHang cú quan hệ kết hợp với MoTaMatHang và mũi tờn điều khiển chỉ hướng gửi thụng điệp khi trao đổi thụng tin như hỡnh 7-4. Trong C++, điều này cú nghĩa là trong lớp DongBanHang phải khai bỏo biến tham chiếu tới MoTaMatHang.
Thuộc tớnh tham chiếu thường là khụng tường minh, chỳng được suy ra từ cỏc mối quan hệ trong biểu đồ lớp. Đụi khi, nếu vai trũ của đầu quan hệ cú mặt trong biểu đồ lớp thỡ chỳng ta cũng cú thể sử dụng như là tờn của thuộc tớnh tham chiếu. Định nghĩa của lớp DongBanHang, do vậy được định nghĩa hoàn chỉnh như hỡnh 7-5.
Hỡnh 7-5 Bổ sung thờm thuộc tớnh tham chiếu vào lớp
Tờn của vai trũ được sử dụng trong tờn của thuộc tớnh
class DongBanHang{
DongBanHang(MoTaMatHang mTa, int soLuong); public float subtotal();
private int soLuong;
private MoTaMatHang moTa; } * Được-mụ-tả-bởi 1 DongBanHang soLuong: Int subtotal(): Number MoTaMatHang upc: UPC giaBan: Number moTa: Text moTa biến đơn biến tham chiếu
Tương tự như trờn, chỳng ta cú thể định nghĩa cỏc lớp khỏc, vớ dụ lớp HBH được định nghĩa như hỡnh 7-6.
Hỡnh 7-6 Định nghĩa lớp HBH