PHÂN TÍCH BÀI TOÁN QUAN HỆ GIA ĐÌNH THEO PHƯƠNG
PHÁP
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Ths. Trần Thị Hương Khoa K thuật – Công ngh
Lập trình hưng đối tượng đặt trọng m vào đối tượng, yếu tố quan trọng
trong quá trình phát trin chương trình không cho phép dliệu biến động
tdo trong hệ thống. Dliệu được gắn chặt với các hàm thành các vùng
riêng ch các m đó tác động lên cm các hàm n ngoài truy
nhập tới một cách tuỳ tin. LTHĐT cho phép chúng ta phân tích bài toán
thành các thực thể được gọi các đối tượng và sau đó xây dựng c dữ liệu
cùng các hàm xung quanh các đối tượng đó. Các đối tượng thể tác đng,
trao đổi thông tin với nhau thông qua chế thông báo, để hiểu thêm v
cách tchức cơ sở dữ liu trong lập trình hướng đối tượng ta tìm hiu bài
toán quan hệ gia đình như sau:
Trong hội, mỗi người đều một gia đình, trong đó tồn tại nhiều mối
quan hgia đình khá phức tạp như ông, bà, cha, mẹ, cô, chú, bác, v.v. Thông
thường, để th hiện các mối quan hy người ta biểu din bằng một đồ
cây quan hệ. Dưới đây là một dbiểu diễn một gia đình ba thế hbằng
hình 1.1.
Để giải quyết bài toán này theo phương pháp Lập trình cấu trúc, ng việc
đầu tiên là phải y dựng một cấu trúc dliệu thể hin được cây quan hệ
trên. Trông qua có v là đơn giản nhưng nếu thử làm xem sthấy không đơn
giản chút nào, thm ccòn khó. Bi vì đòi hỏi người lập trình phi rất
thành thạo sử dụng con trỏ, phải y dựng được gii thuật cập nhật thông tin
trên y quan hệ. Các giải thuật này tương đối phức tạp đối với một cấu trúc
dliệu như trong i toán. Yêu cu của bài toán là trli được câu hỏi dạng
như Hưng Mai quan hệ như thế nào ?”. Câu trlời của chương trình
phải Hưng anh họ ca Mai”. Để có thể thực hiện được như vậy, rõ
ràng chúng ta phải xây dựng được giải thuật tìm được mối quan hệ giữa hai
nút trên y quan hệ. Một vấn đề phức tạp và tế nhị hơn n gọi cho các
mối quan hgia đình Việt nam rất phong phú! Một khó khăn là phải t
cạn hết c mối quan hệ có thcó trên mt cây quan hệ. Một kkhăn nữa
gặp phải là khi cn phát triển, chương trình phải qun lý được nhiều gia đình
cùng một lúc các gia đình này mối quan hthông gia với nhau. Hình
1.2 đồ quan hđược phát triển từ sơ đồ ví dụ trên minh hocho vấn đề
này.
Một câu hỏi đặt ra: “Liệu với cấu trúc dữ liu cũ có đảm bảo gii quyết được
vấn đề này không ?”. ng u trlời không. đồ quan hệ trên hình
vẽ sẽ phải mô tả quan hệ của một gia đình. Chvới chút ít sự thay đổi về cấu
trúc dliệu cũng dẫn đến một loạt vấn đề đòi hi phi viết lại các gii thuật
của chương trình. Phương pháp lập trình mới hướng đối tượng cho phép
chúng ta khắc phục được c vấn đề đã nêu ra. Theo cách tiếp cận LTHĐT,
bài toán quan h gia đình được xem t dưới góc độ quản tập các đối
tượng Con người. Để biết mối quan h gia đình của mỗi thể, cần thhiện
một số quan hbản như cha, mẹ, anh em, con i, vchồng của thể
đó. Nvậy, mi đối tượng con người ca bài tn các thuộc tính riêng,
nói lên rng cha mẹ, anh em, v.v.. của họ là ai. Ngoài ra cũng cần có một
thuộc tính nữa cho biết tên thlà gì. thtả một lớp các đối tượng
con người như hình 1.3.
Nếu chỉ có như vậy thì chng khác gì một cấu trúc hay bản ghi trong cấu
trúc ddiệu được sử dụng phương pháp LTCT. Vn đề đây phương
pháp LTHĐT xem các mối quan hệ trong gia đình được hình thành một cách
tnhiên do các sự kiện cụ thể trong cuộc sống tạo nên. Ví dụ, khi người ph
nsinh con, đứa con ta sinh ra sẽ mẹ là ta cha chng cô ta,
đồng thời anh chồng phi được cập nhật để có thêm đứa con này. Nhng đứa
con trước của ta sẽ thêm đứa em này và đứa có thêm những người
anh hoặc người chị đó. Dễ dàng thấy rằng hai sự kiện chính tác động đến
mối quan hệ gia đình s sinh con của người phụ nữ và hôn nhân giữa hai
thkhác giới trong xã hội. Các sự kin này gn lin với từng con người
trong i toán. Điều này nghĩa là khi nói đến một sự kiện nào thì phi chỉ
ra được phát sinh bởi người nào. dụ, khi nói skiện sinh con thì phi
biết người nào sinh. Khi mt sự kin của một con người nào đó xảy ra (ví d
như sinh con) thì c thuộc tính ca chính anh ta sẽ bthay đổi, đồng thời
thuộc tính của một số đối tượng liên quan cũng thể thay đổi theo. Quá
trình đóng gói giữa các sự kin và thuộc tính stạo ra Đối tượng, khái niệm
bản của phương pháp LTHĐT. Một tả chung cho các đối tượng con
người của i toán được gọi là một Lớp. Hình 1.4 minh ho một lớp Con
người có thêm các sự kiện ca bài toán.
Sau khi đã gắn kết c sự kiện o đối tượng như trên, vấn đề là tạo một sơ
đồ quan hệ gia đình như thế nào. Dưới đây là một ví dminh hoạ việc tạo ra
một quan hệ gia đình dựa trên các skin cuộc sống. Giả thiết đã hai
đối tượng là ông Thng và bà Mai.
Các s kiện để tạo ra cây quan hệ trên th viết theo trật t như sau:
Thắng.Cưới (Mai) Mai.Sinh con (gái, Nga) Mai.Sinh con (trai,Tuấn).
Như vậy các bạn đã thy rằng chúng ta không cần phải quan m đến cách
tạo mt cấu trúc cây quan hệ như thế nào n trong dliệu của chương trình