Tải bản đầy đủ (.pdf) (32 trang)

Định nghĩa các quan hệ tổng quát hóa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (282.47 KB, 32 trang )

PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
90
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác đònh các Persistent Class
w Đònh nghóa các Operation
w Đònh nghóa Class Visibility
w Đònh nghóa các Method
w Đònh nghóa các trạng thái
w Đònh nghóa các thuộc tính
w Đònh nghóa các phụ thuộc
w Đònh nghóa các mỗi kết hợp
w Đònh nghóa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
91
Đònh nghóa quan hệ tổng quát hóa
w Mục đích
§ Xác đònh các khả năng dùng lại
§ Tinh chỉnh cây kế thừa để có thể cài đặt hiệu quả
w Những gì cần xem xét:
§ So sánh Abstract classes với concrete classes
§ Bài toán đa kế thừa
§ So sánh Generalization và Aggregation
§ Tổng quát hóa để hỗ trợ tái sử dụng trong cài đặt
§ Tổng quát hóa để hỗ trợ đa xạ (polymorphism)
§ Tổng quát hóa để hỗ trợ đa hình (metamorphosis)


§ Mô phỏng tổng quát hóa
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
92
Nhắc lại: Generalization
w Một class chi sẻ cấu trúc và hành vi của một
hay nhiều class
w Là quan hệ “Là một dạng của”
w Trong phân tích, ít khi dùng đến
Account
balance
name
number
Withdraw()
CreateStatement()
Checking
Savings
GetInterest()
Superclass
(parent)
Subclasses
Generalization
Relationship
descendents
ancestor
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
93
Lion
talk ()

Tiger
talk ()
Animal
{abstract}
talk () {abstract}
Không có thể hiện của Animal
Tất cả các object đều hoặc là Lion hoặc là Tiger
Abstract class
Abstract operation
Communication
Chuyên biệt hóa
Abstract và Concrete Class
w Abstract class không có bất kỳ thể hiện nào
w Concrete classes có thể có thể hiện (object)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
94
Airplane Helicopter Wolf Horse
FlyingThing Animal
Bird
multiple
inheritance
Dùng đa kế thức chỉ khi thật cần thiết, và phải luôn cẩn thận !
Nhắc lại: Đa kế thừa
w Một class có thể kế thừa từ nhiều class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
95
Tên của attribute hay
operation bò trùng

Lặp lại việc kế thừa
FlyingThing
color
getColor
Animal
color
getColor
Bird
FlyingThing
Animal
Bird
AnimateObject
color
Các vấn đề của đa kế thừa
Lời giải của các vấn đề trên phụ thuộc cài đặt cụ thể
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
96
Các ràng buộc của quan hệ tổng quát hóa
w Complete (Hoàn chỉnh)
§ Kết thúc toàn bộ cây kế thừa trong thiết kế
w Incomplete (Không hoàn chỉnh )
§ Cây kế thừa có thể mở rộng
w Disjoint (Phân tách)
§ Các Subclass loại trừ lần nhau
§ Không hỗ trợ đa kế thừa
w Overlapping (Chồng lắp)
§ Các Subclass không loại trừ lẫn nhau
§ Hỗ trợ đa kế thừa
PT & TK Hướng đối tượng – Thiết kế kiến trúc

Dương Anh Đức
97
Ví dụ: Generalization Constraints
Asset
Real
Estate
Bank
Account
Security
Saving
Checking
Stock Bond
{disjoint}
{disjoint,complete}
{disjoint}
Kết thúc cây kế thừa
Không hỗ trợ
đa kế thừa
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
98
Ví dụ: Generalization Constraints (tt.)
Vehicle
Water
Vehicle
Land
Vehicle
Amphibious
Vehicle
{overlapping}

Hỗ trợ
đa kế thừa
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
99
Window
WindowWithScrollbar
Scrollbar
Có đúng không?
Chọn Generalization hay Aggregation
w Rất dễ nhầm lẫm giữa Generalization và
aggregation
§ Generalization biểu diễn quan hệ “là một” hay
“dạng của”
§ Aggregation biểu diễn quan hệ “một bộ phận của”
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
100
Scrollbar
Window
WindowWithScrollbar
11
Window
WindowWithScrollbar
Scrollbar
Một WindowWithScrollbar “là một” Window
Một WindowWithScrollbar “chứa một” Scrollbar
Chọn Generalization hay Aggregation
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức

101
Sử dụng quan hệ tổng quát hóa
w Chia sẻ các thuộc tính và hành vi chung
w Chia sẻ cài đặt
w Cài đặt cơ chế Polymorphism
w Cài đặt cơ chế Metamorphosis

×