NGUYÊN LÝ THIẾT KẾ HƯỚNG ĐÔI TƯỢNG - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Số trang: 55
Loại file: ppt
Dung lượng: 419.50 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nguyên tắc số 1Giảm thiểu khả năng truy nhập tới lớp và các thành viên"Trừu tượng hóa" nghĩa là gì?Tony Hoare: “trừu tượng hóa xuất phát từ một cách nhìn nhận những đặc điểm tương đồng giữa một số đối tượng, tình thế, hoặc quy trình nhất định trong thế giới thực, và quyết định tập trung vào những điểm tương đồng này và nhất thời lờ đi các điểm khác biệt.”
Nội dung trích xuất từ tài liệu:
NGUYÊN LÝ THIẾT KẾ HƯỚNG ĐÔI TƯỢNG - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGNguyên lý thiết kếhướng đối tượngLập trình hướng đối tượngNguyên tắc số 1 Giảm thiểu khả năng truy nhập tới lớp và các thành viên Nguyên lý thiết kế hướng đối tượng 2Bob TarrTrừu tượng hóa nghĩa là gì? Tony Hoare: “trừu tượng hóa xuất phát từ một cách nhìn nhận những đặc điểm tương đồng giữa một số đối tượng, tình thế, hoặc quy trình nhất định trong thế giới thực, và quyết định tập trung vào những điểm tương đồng này và nhất thời lờ đi các điểm khác biệt.” Grady Booch: “Một trừu tượng hóa kí hiệu các đặc điểm cốt lõi của một đối tượng mà các đặc điểm này phân biệt nó với tất cả các loại đối tượng khác, cho ta các ranh giới được xác định rõ ràng. Tất cả được xét một cách tương đối trong góc nhìn của người quan sát.” Trừu tượng hóa là một trong những phương pháp nền tảng để đối phó với sự phức tạp Một trừu tượng hóa tập trung vào hình ảnh bên ngoài của một đối tượng và tách hành vi của đối tượng đó ra khỏi cài đặt của nó. Nguyên lý thiết kế hướng đối tượng 3Bob TarrĐóng gói - encapsulation Grady Booch: Đóng gói là để chia tách giữa giao diện cam kết của một trừu tượng hóa và cài đặt của nó. Craig Larman: Đóng gói là một cơ chế được dùng để che dữ liệu, cấu trúc bên trong, và chi tiết cài đặt của một đối tượng. Mọi tương tác với đối tượng được thực hiện qua một giao diện công khai của các thao tác Các lớp đối tượng không nên để mở các chi tiết cài đặt nội bộ của mình Nguyên lý thiết kế hướng đối tượng 4Bob TarrChe dấu thông tin ở Java Sử dụng các thành viên private và các hàm đọc (get) và ghi (set) mỗi khi có thể. Ví dụ: Thay thế public double speed; bằng private double speed; public double getSpeed() { return speed; } public double setSpeed(double newSpeed) { speed = ….. } Nguyên lý thiết kế hướng đối tượng 5Bob TarrChe dấu thông tin ở Java Ta có thể quy định các ràng buộc về giá trị public void setSpeed(double newSpeed) { if (newSpeed < 0) { sendErrorMessage(...); newSpeed = Math.abs(newSpeed); } speed = newSpeed; } Nếu các client được truy cập trực tiếp đến thành viên dữ liệu thì từng client phải chịu trách nhiệm kiểm tra ràng buộc Nguyên lý thiết kế hướng đối tượng 6Bob TarrChe dấu thông tin ở Java Ta có thể thay đổi biểu diễn dữ liệu bên trong lớp đối tượng mà không phải sửa giao diện // Now using metric units (kph, not mph) public void setSpeedInMPH(double newSpeed) { speedInKPH = convert(newSpeed); } public void setSpeedInKPH(double newSpeed) { speedInKPH = newSpeed; } Nguyên lý thiết kế hướng đối tượng 7Bob TarrChe dấu thông tin ở Java Ta có thể thực hiện các hiệu ứng phụ tùy ý public void setSpeed(double newSpeed) { speed = newSpeed; notifyObservers(); } Nếu các client của một lớp truy nhập trực tiếp dữ liệu của mình, mỗi client sẽ phải chịu trách nhiệm chạy hiệu ứng phụ Nguyên lý thiết kế hướng đối tượng 8Bob TarrNguyên tắc số 2 Ưu tiên sử dụng Composition hơn Inheritance Nguyên lý thiết kế hướng đối tượng 9Bob TarrComposition Phương pháp tái sử dụng mà trong đó chức năng mới được xây dựng bằng cách tạo một đối tượng có thành phần là các đối tượng khác Chức năng mới được tạo bằng cách sử dụng chức năng của một trong các đối tượng thành phần Composition có thể là chứa Tham chiếu Giá trị C++ cho phép chứa giá trị đối tượng hoặc chứa tham chiếu đối tượng Java chỉ cho phép chứa tham chiếu đối tượng. Nguyên lý thiết kế hướng đối tượng 10Bob TarrƯu/nhược điểm của CompositionƯu điểm: Lớp chứa chỉ có thể truy nhập tới các đối tượng thành ph ần qua giao diện của các đối tượng đó. Tái sử dụng kiểu hộp đen, do chi tiết cài đặt của các đ ối t ượng thành phần không lộ ra ngoài Tính đóng gói cao Ít phụ thuộc về cài đặt hơn Mỗi lớp chỉ chú trọng vào một tác vụ Quan hệ composition có thể được xác định một cách động trong thời gian chạy qua việc đối tượng nhận tham chiếu tới các đối tượng khác Nguyên lý thiết kế hướng đối tượng 11Bob TarrƯu/nhược điểm của Composition Nhược điểm Kết quả là hệ thống có xu hướng chứa nhiều đối tượng hơn Các giao diện phải được định nghĩa cẩn thận để sử dụng nhiều đối tượng khác nhau trong vai trò các khối cấu thành Nguyên lý thiết kế hướng đối tượng 12Bob TarrThừa kế Phương pháp tái sử dụng mà trong đó chức năng mới được xây dựng bằng cách mở rộng cài đặt của một đối tượng có sẵn Lớp tổng quát (superclass) liệt kê một cách tường minh các thuộc tính và phương thức chung Lớp chuyên hóa (subclass) mở rộng cài đặt với các thuộc tính và phương thức bổ sung Nguyên lý thiết kế hướng đối tượng 13Bob TarrƯu nhược điểm của thừa kếƯu điểm: Dễ dàng cài lớp mới, do phần lớn đã được thừa kế Dễ sửa hoặc mở rộng cài đặt được tái sử dụngNhược điểm Phá vỡ tính đóng g ...
Nội dung trích xuất từ tài liệu:
NGUYÊN LÝ THIẾT KẾ HƯỚNG ĐÔI TƯỢNG - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGNguyên lý thiết kếhướng đối tượngLập trình hướng đối tượngNguyên tắc số 1 Giảm thiểu khả năng truy nhập tới lớp và các thành viên Nguyên lý thiết kế hướng đối tượng 2Bob TarrTrừu tượng hóa nghĩa là gì? Tony Hoare: “trừu tượng hóa xuất phát từ một cách nhìn nhận những đặc điểm tương đồng giữa một số đối tượng, tình thế, hoặc quy trình nhất định trong thế giới thực, và quyết định tập trung vào những điểm tương đồng này và nhất thời lờ đi các điểm khác biệt.” Grady Booch: “Một trừu tượng hóa kí hiệu các đặc điểm cốt lõi của một đối tượng mà các đặc điểm này phân biệt nó với tất cả các loại đối tượng khác, cho ta các ranh giới được xác định rõ ràng. Tất cả được xét một cách tương đối trong góc nhìn của người quan sát.” Trừu tượng hóa là một trong những phương pháp nền tảng để đối phó với sự phức tạp Một trừu tượng hóa tập trung vào hình ảnh bên ngoài của một đối tượng và tách hành vi của đối tượng đó ra khỏi cài đặt của nó. Nguyên lý thiết kế hướng đối tượng 3Bob TarrĐóng gói - encapsulation Grady Booch: Đóng gói là để chia tách giữa giao diện cam kết của một trừu tượng hóa và cài đặt của nó. Craig Larman: Đóng gói là một cơ chế được dùng để che dữ liệu, cấu trúc bên trong, và chi tiết cài đặt của một đối tượng. Mọi tương tác với đối tượng được thực hiện qua một giao diện công khai của các thao tác Các lớp đối tượng không nên để mở các chi tiết cài đặt nội bộ của mình Nguyên lý thiết kế hướng đối tượng 4Bob TarrChe dấu thông tin ở Java Sử dụng các thành viên private và các hàm đọc (get) và ghi (set) mỗi khi có thể. Ví dụ: Thay thế public double speed; bằng private double speed; public double getSpeed() { return speed; } public double setSpeed(double newSpeed) { speed = ….. } Nguyên lý thiết kế hướng đối tượng 5Bob TarrChe dấu thông tin ở Java Ta có thể quy định các ràng buộc về giá trị public void setSpeed(double newSpeed) { if (newSpeed < 0) { sendErrorMessage(...); newSpeed = Math.abs(newSpeed); } speed = newSpeed; } Nếu các client được truy cập trực tiếp đến thành viên dữ liệu thì từng client phải chịu trách nhiệm kiểm tra ràng buộc Nguyên lý thiết kế hướng đối tượng 6Bob TarrChe dấu thông tin ở Java Ta có thể thay đổi biểu diễn dữ liệu bên trong lớp đối tượng mà không phải sửa giao diện // Now using metric units (kph, not mph) public void setSpeedInMPH(double newSpeed) { speedInKPH = convert(newSpeed); } public void setSpeedInKPH(double newSpeed) { speedInKPH = newSpeed; } Nguyên lý thiết kế hướng đối tượng 7Bob TarrChe dấu thông tin ở Java Ta có thể thực hiện các hiệu ứng phụ tùy ý public void setSpeed(double newSpeed) { speed = newSpeed; notifyObservers(); } Nếu các client của một lớp truy nhập trực tiếp dữ liệu của mình, mỗi client sẽ phải chịu trách nhiệm chạy hiệu ứng phụ Nguyên lý thiết kế hướng đối tượng 8Bob TarrNguyên tắc số 2 Ưu tiên sử dụng Composition hơn Inheritance Nguyên lý thiết kế hướng đối tượng 9Bob TarrComposition Phương pháp tái sử dụng mà trong đó chức năng mới được xây dựng bằng cách tạo một đối tượng có thành phần là các đối tượng khác Chức năng mới được tạo bằng cách sử dụng chức năng của một trong các đối tượng thành phần Composition có thể là chứa Tham chiếu Giá trị C++ cho phép chứa giá trị đối tượng hoặc chứa tham chiếu đối tượng Java chỉ cho phép chứa tham chiếu đối tượng. Nguyên lý thiết kế hướng đối tượng 10Bob TarrƯu/nhược điểm của CompositionƯu điểm: Lớp chứa chỉ có thể truy nhập tới các đối tượng thành ph ần qua giao diện của các đối tượng đó. Tái sử dụng kiểu hộp đen, do chi tiết cài đặt của các đ ối t ượng thành phần không lộ ra ngoài Tính đóng gói cao Ít phụ thuộc về cài đặt hơn Mỗi lớp chỉ chú trọng vào một tác vụ Quan hệ composition có thể được xác định một cách động trong thời gian chạy qua việc đối tượng nhận tham chiếu tới các đối tượng khác Nguyên lý thiết kế hướng đối tượng 11Bob TarrƯu/nhược điểm của Composition Nhược điểm Kết quả là hệ thống có xu hướng chứa nhiều đối tượng hơn Các giao diện phải được định nghĩa cẩn thận để sử dụng nhiều đối tượng khác nhau trong vai trò các khối cấu thành Nguyên lý thiết kế hướng đối tượng 12Bob TarrThừa kế Phương pháp tái sử dụng mà trong đó chức năng mới được xây dựng bằng cách mở rộng cài đặt của một đối tượng có sẵn Lớp tổng quát (superclass) liệt kê một cách tường minh các thuộc tính và phương thức chung Lớp chuyên hóa (subclass) mở rộng cài đặt với các thuộc tính và phương thức bổ sung Nguyên lý thiết kế hướng đối tượng 13Bob TarrƯu nhược điểm của thừa kếƯu điểm: Dễ dàng cài lớp mới, do phần lớn đã được thừa kế Dễ sửa hoặc mở rộng cài đặt được tái sử dụngNhược điểm Phá vỡ tính đóng g ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật lập trình mẹo lập trình thiết kế hướng đối tượng lập trình hướng đồi tượng kỹ thuật lập trình cơ sở dữ liệu kỹ thuật lập trình hướng đối tượngGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
Bài giảng Phân tích và thiết kế hướng đối tượng - Đỗ Ngọc Như Loan
9 trang 249 0 0 -
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 2 - Nguyễn Ngọc Duy
7 trang 226 0 0 -
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 215 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 207 0 0 -
101 trang 200 1 0
-
Hướng dẫn lập trình với Android part 4
5 trang 156 0 0 -
69 trang 147 0 0
-
14 trang 134 0 0
-
142 trang 130 0 0