Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
282,47 KB
Nội dung
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ácquanhệtổngquáthó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 quanhệtổngquáthó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ổngquáthóa để hỗ trợ tái sử dụng trong cài đặt § Tổngquáthóa để hỗ trợ đa xạ (polymorphism) § Tổngquáthóa để hỗ trợ đa hình (metamorphosis) § Mô phỏng tổngquáthó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à quanhệ “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 quanhệtổngquáthó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 quanhệ “là một” hay “dạng của” § Aggregation biểu diễn quanhệ “một bộ phận của” [...]... Scrollbar 1 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 1 100 Sử dụng quan hệtổngquáthóa w Chia sẻ các thuộc tính và hành vi chu w Chia sẻ cài đặt w Cài đặt cơ chế Polymorphism w Cài đặt cơ chế Metamorphosis 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ổngquáthóa w Chia sẻ các thuộc tính và hành vi chu w Chia sẻ cài đặt w Cài đặt cơ chế Polymorphism w... Một hướng tiếp cận Modeling Metam w Có thể tạo một quan hệtổngquáthóa Chuyện g một parttrở thàn stu Student name address studentID ParttimeStudent FulltimeStudent maxNumCourses gradDate PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 117 Một hướng tiếp cận khác w Quanhệ kế thừa có thể dùng để mô h cấu trúc, hành vi và quanhệ chung va hệ với phần “thay đổi” Student Student name address... Generalization w Các Interface hỗ trợ biểu diễn độc lập với polymorphism § Realization relationships có thể băng ng cấu trúc phân cấp của quan hệtổng qua w Các Interface chỉ thuần là đặc tả, không co § Abstract base class có thể đònh nghóa at associations w Các Interface hoàn toàn độc lập với quan h § Generalization thường dùng để cài đặt lại § Interfaces thường dùng để đặc tả việc t các hành vi w Generalization... trúc Dương Anh Đức 107 1 1 inse (Ite rem inse rem Quanhệ kế thừa dạng . 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ệ. 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