Chủ Nhật, 20 tháng 4, 2014

Tài liệu NGUYÊN LÝ THIẾT KẾ HƯỚNG ĐÔI TƯỢNG - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG doc


LINK DOWNLOAD MIỄN PHÍ TÀI LIỆU "Tài liệu NGUYÊN LÝ THIẾT KẾ HƯỚNG ĐÔI TƯỢNG - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG doc": http://123doc.vn/document/1049682-tai-lieu-nguyen-ly-thiet-ke-huong-doi-tuong-lap-trinh-huong-doi-tuong-doc.htm


Nguyên lý thiết kế hướng
đối tượng 5
Bob Tarr
Che 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 6
Bob Tarr
Che 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 7
Bob Tarr
Che 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 8
Bob Tarr
Che 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 9
Bob Tarr
Nguyê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 10
Bob Tarr
Composition

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 11
Bob 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 12
Bob 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 13
Bob Tarr
Thừ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 14
Bob 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ụng
Nhược điểm

Phá vỡ tính đóng gói, do nó để cho lớp con biết về chi tiết cài đặt
của lớp cha

Tái sử dụng kiểu "hộp trắng"

Có thể phải sửa lớp con nếu cài đặt của lớp cha có thay đổi.

Tại thời gian chạy, không thể thay đổi cài đặt đã được thừa kế từ
các lớp cha

Không có nhận xét nào:

Đăng nhận xét