Tài liệu BÀI 2: TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION) - Pdf 96

BÀI 2:
TÌM HIỂU VỀ HƯỚNG ĐỐI TƯỢNG (OBJECT-ORIENTATION)
Nội dung chính trong bài học:
+ Sự trừu tượng hóa (abstraction)
+ Sự thừa kế (inheritance)
+ Tính đa hình (polymorphism)
+ Tính đóng gói (encapsulation)
+ Việc truyền thông điệp (message sending)
+ Mối kết hợp (association)
+ Sự tập hợp (aggregation)
Hướng đối tượng đem lại những đổi thay rất lớn cho thế giới phần mềm. Nó được xem là
một cách thức mới để tạo chương trình và có rất nhiều ưu điểm. Nó hướng theo cách tiếp
cận dựa trên thành phần (component-based approach) để phát triển phần mềm sao cho một
hệ thống chính là một tập các đối tượng (object). Sau đó, ta có thể mở rộng hệ thống bằng
cách tăng cường khả năng cho các thành phần sẵn có hoặc thêm các thành phần mới. cuối
cùng, ta có thể tái sử dụng các object đã tạo cho hệ thống trước đó khi xây dựng một hệ
thống mới, làm cắt giảm đáng kể thời gian phát triển hệ thống.
Hướng đối tượng rất quan trọng đối với ngành công nghệ phần mềm và OMG (Object
Management Group) là một tổ chức đã thiết lập các chuẩn cho việc phát triển hướng đối
tượng. UML cho phép ta xây dựng các mô hình dễ dùng, dễ hiểu của các đối tượng sao cho
các lập trình viên có thể tạo ra chúng trong phần mềm.
Hướng đối tượng chỉ là một tập ý tưởng dựa trên một số nguyên lý cơ sở. Trong bài này,
chúng ta sẽ tìm hiểu các nguyên lý đó.
Đối tượng (object) có mọi nơi
Đối tượng có tính cụ thể, nói cách khác chúng tồn tại xung quanh ta, chúng tạo nên thế giới.
Như đã đề cập trong bài trước, phần mềm ngày nay có xu hướng mô phỏng thế giới hoặc
một phần nhỏ của thê 1giới, do vậy các chương trình thường “bắt trước” các object trong thế
giới thực.
Thuật ngữ: Đối tượng (object) là một thể hiện (instance) của một lớp (class). Mỗi người
chúng ta là một thể hiện của lớp con người (person class). Một object có cấu trúc
(structure). Nghĩa là nó có các thuộc tính (attribute, property) và hành vi (behavior). Một

Thêm các thuộc tính và
hành vi giúp cho mô
hình gần với thực tế
hơn.
Trang 2 – Bài 2
Các khái niệm
Sự trừu tượng hóa (abstraction):
Thuật ngữ: sự trừu tượng hóa là sự đơn giản hóa, lược bỏ đi các tính chất, hành động của
một thực thể để chỉ còn lại những gì cần thiết.
Các loại vấn đề khác nhau đòi hỏi mức độ thông tin khác nhau. Hình 2.2 xây dựng một mô
hình washing machine với nhiều thuộc tính và hành vi hơn so với Hình 2.1. Làm như thế có
cần thiết không?
Nếu ta là thành viên trong một nhóm với nhiệm vụ tạo một chương trình máy tính mô phỏng
chính xác cách thức một máy giặt hoạt động thì việc bổ sung thuộc tính, hành vi như đã nói
là rất cần thiết. Một chương trình máy tính như thế (dùng cho kỹ sư thiết kế máy giặt) phải
có đủ thông tin để dự tính chính xác về những sẽ diễn ra khi máy giặt được tạo ra, khi nó
vận hành thực tế. Đối với các loại chương trình như thế, có thể loại bỏ những thuộc tính
không thực sự hữu dụng như thuộc tính serial number.
Với ví dụ khác, nếu chúng ta tạo một phần mềm theo dõi các giao dịch trong một cửa hàng
giặt ủi có nhiều máy giặt thì việc bổ sung thuộc tính, hành vi như đã nói là không cần thiết.
Chúng ta có thể giữ lại thuộc tính serial number cho mỗi đối tượng máy giặt.

Sự thừa kế (inheritance):
Thuật ngữ: Một class là một lớp các object (trong phần mềm, nó là một mẫu cho việc tạo

Hình 2.4
Superclass cũng có thể
là subclass
Tính đa hình (polymorphism):
Thuật ngữ: đôi khi, một hành vi (operation) có cùng tên trong các class khác nhau. Ví dụ,
“open” cửa lớn, “open” cửa sổ, “open” tạp chí, món quà, tài khoản ngân hàng, …Trong mỗi
trường hợp đó, chúng ta thực hiện một hành vi khác nhau. Trong hướng đối tượng, một
hành vi cùng tên có thể được thực hiện khác nhau với những class khác nhau. Điều này
được gọi là tính đa hình (polymorphism).
Hình 2.5
Trong tính đa hình, một
hành vi có thể có cùng
tên trong những class
khác nhau và tiến hành
khác nhau trong mỗi
class. Trang 4 – Bài 2
Tính đóng gói (encapsulation):
Khi một object thực thi các hành vi của nó, các hành vi này bị che dấu (xem hình 2.6). Khi
chúng ta xem tivi, chúng ta không biết và không quan tâm đến các linh kiện điện tử phức
tạp phía sau màn hình tivi, cũng như nhiều hành vi nhằm quét ảnh lên màn hình.
Hình 2.6
Các object đóng gói
những gì chúng thực
hiện. Nghĩa là, chúng

nhận tia hồng ngoại.

Trang 5 – Bài 2
Mối kết hợp (association):
Thông thường, các object không độc lập mà có quan hệ với nhau. Ví dụ, khi bạn bật Tivi,
theo thuật ngữ hướng đối tượng, bạn và tivi có một mối kết hợp (association). Mối kết hợp
“turn-on” là mối kết hợp đơn hướng (unidirectional), như hình 2.8.
Ngoài ra còn có mối kết hợp hai hướng (bidirectional), chẳng hạn như “is married to”.
Hình 2.8
Các object thường kết
hợp với nhau theo một
vài cách. Khi một người
bật TV, người đó đang
trong mối kết hợp đơn
hướng với TV.

Đôi khi một object có thể kết hợp với một object khác theo nhiều cách. Nếu bạn và đồng
nghiệp là bạn bè thì giữa 2 người có 2 association là “is the friend of” và “is the coworker
of”. Xem hình 2.9.
Hình 2.9
Các object đôi khi kết
hợp với nhau theo
nhiều cách.
Một class có thể kết hợp cùng lúc với nhiều class khác nhau. Một người có thể đi trên ô tô
và người cũng có thể đi trên xe bus. Xem hình 2.10.
Hình 2.10
Một class có thể kết hợp

Thuật ngữ: Một dạng đặc biệt của aggregation liên quan đến quan hệ chặt chẽ giữa một
aggregation object với các thành phần của nó. Nó được gọi là sự cấu thành (composition).
Điểm chính yếu của composition là các thành phần tồn tại như là những component chỉ
trong composite object thôi. Ví dụ, 1 sáo sơmi (shirt) là một composite của 1 thân (body), 1
cổ áo (collar), 2 tay áo (sleeve), một số nút áo (button), khuyết áo (buttonhold) và cổ tay áo
(cuff). Nếu tách khỏi shirt thì collar trở nên vô dụng.
Đôi khi, một thành phần trong một composition không tồn tại mãi cùng composition. Ví dụ
lá (leaf) tên một cây (tree) có thể tàn trước khi cây chết. Dĩ nhiên, nếu ta hủy cây thì lá cũng
chết theo (xem hình 2.12)
Khái niệm aggregation và composition quan trọng bởi chúng phản ánh những sự việc rất
thông thường và giúp chúng ta tạo ra các mô hình gần giống với thực tế.

Trang 7 – Bài 2
Hình 2.11
Trong một composition,
một thành phần có thể
“chết” trước khi
composition “chết”.
Nếu ta hủy sự cấu thành
(composite) thì các
thành phần cũng bị hủy
theo. Tóm lược
Hướng đối tượng là một tập các tư tưởng dựa trên một số nguyên lý cơ bản. Một đối tượng
là một thể hiện của một lớp. Một lớp loại tổng quát của các đối tượng có củng thuộc tính và


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status