Bài giảng Các nguyên lý lập trình hướng đối tượng - Nguyễn Minh Huy
lượt xem 9
download
Bài giảng Các nguyên lý lập trình hướng đối tượng do Nguyễn Minh Huy biên soạn nêu lên phần mềm hướng đối tượng; nguyên lý Open-Close; nguyên lý Nghịch đảo phụ thuộc; nguyên lý Thay thế Liskov; nguyên lý Phân tách Interface. Mời các bạn tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Các nguyên lý lập trình hướng đối tượng - Nguyễn Minh Huy
- Các nguyên lý lập trình hướng đối tượng Nguyễn Minh Huy Bộ môn Công nghệ Phần mềm
- Nội dung Phần mềm hướng đối tượng Nguyên lý Open-Close Nguyên lý Nghịch đảo phụ thuộc Nguyên lý Thay thế Liskov Nguyên lý Phân tách Interface Thảo luận
- Nội dung Phần mềm hướng đối tượng Nguyên lý Open-Close Nguyên lý Nghịch đảo phụ thuộc Nguyên lý Thay thế Liskov Nguyên lý Phân tách Interface Thảo luận
- Phần mềm hướng đối tượng Phần mềm là gì? “A computer program, enable a computer to perform a specific task” (wikipedia). “Software is nothing but a set of ideas… express a Software way is something to do something. Thosethat is…are ideas soft!! written in a code the same way our words and sentences code our thoughts... The code is only the representation of the ideas, and the ideas are really the software” (Hardware is from Mars; Software is from Venus, Winn Rosch).
- Phần mềm hướng đối tượng Thế nào là phần mềm hướng đối tượng? Có Cókhai khaibáo báo và vàsử sửdụng dụng đối đốitượng? tượng? Chưa đủ!! Tuân thủ nguyên lý lập trình hướng Sử dụngđối đối tượng thông tượng thếqua nào đây?? việc vận dụng các tính chất lập trình hướng đối tượng
- Phần mềm hướng đối tượng Ba tính chất lập trình Nguyên hướng đối tượng: lý Open-Close Tính (The đóng góiOpen-Closed Principle) (Encapsulation). Tính kế thừa (Inheritance). Nguyên lý Nghịch đảo phụ thuộc Tính đa hình (Polymorphism). (The Dependency Inversion Principle) Nguyên lý lập trình hướng đối tượng: Nguyên lý Thay thế Liskov Những quy tắc cơ bản mang tính chất nền tảng. (The Liskov Substitution Principle) Có tính khái quát và trừu tượng cao. Là “kim Nguyên chỉ nam” cho hoạt lý Phân tách động phân tích thiết kế Interface hướng đối (The tượng.Segregation Principle) Interface
- Nội dung Phần mềm hướng đối tượng Nguyên lý Open-Close Nguyên lý Nghịch đảo phụ thuộc Nguyên lý Thay thế Liskov Nguyên lý Phân tách Interface Thảo luận
- Nguyên lý Open-Close Betrand Meyers đề cập lần đầu tiên năm 1988 trong Object Oriented Software Construction. Phát biểu: “Các thực thể phần mềm (hàm, đơn thể, đối tượng, …) nên được xây dựng theo hướng mở cho việc mở rộng (be opened for extension) nhưng đóng đối với việc sửa đổi (be closed for modification)”.
- Nguyên lý Open-Close Không tuân thủ nguyên lý Open-Close!! Phần mềm Phần mềm
- Nguyên lý Open-Close Ví dụ chương trình vẽ hình: public enum ShapeType { LINE, RECTANGLE } public abstract class Shape { public abstract ShapeType getType(); } public class Line: Shape { public override ShapeType getType(); public void drawLine(); } public class Rectangle: Shape { public override ShapeType getType(); public void drawRectangle(); }
- Nguyên lý Open-Close public void draw(ArrayList shapeList) { Line line; Rectangle rectangle; foreach (Shape s in shapeList) switch (s.getType()) { case ShapeType.LINE: line = (Line)s; line.drawLine(); break; case ShapeType.RECTANGLE: rectangle = (Rectangle)s; rectangle.drawRectangle(); break; } }
- Nguyên lý Open-Close public abstract class Shape { public abstract void draw(); } public class Line: Shape { public override void draw(); } public class Rectangle: Shape { public override void draw(); }
- Nguyên lý Open-Close public void draw(ArrayList shapeList) { foreach (Shape s in shapeList) s.draw(); }
- Nguyên lý Open-Close public abstract class Shape { public abstract void draw(); } public class Line: Shape { public override void draw(); } public class Rectangle: Shape { public override void draw(); } public class Circle: Shape { public override void draw(); }
- Nguyên lý Open-Close Client Client Shape Shape Line Line Rectangle Rectangle Circle Circle …
- Nguyên lý Open-Close Ghi chú: Nguyên lý cốt lõi của phân tích thiết kế hướng đối tượng. Ưu tiên áp dụng nguyên lý cho các thực thể phần mềm phải thường xuyên nâng cấp, mở rộng. Việc tuân thủ nguyên lý mang tính tương đối, phụ thuộc ngữ cảnh.
- Nguyên lý Open-Close Áp dụng: Thuộc tính của đối tượng là private để hạn chế sự kết dính không cần thiết (coupling). Đối tượng nắm giữ thông tin và chịu trách nhiệm trên thông tin mình nắm giữ!! Hạn chế ép kiểu động (runtime type-casting). public void doSomething(Vehicle vehicle) { Car car = (Car)vehicle; car.run(); car.stop(); }
- Nội dung Phần mềm hướng đối tượng Nguyên lý Open-Close Nguyên lý Nghịch đảo phụ thuộc Nguyên lý Thay thế Liskov Nguyên lý Phân tách Interface Thảo luận
- Nguyên lý Nghịch đảo phụ thuộc Phát biểu: “Các thành phần trong phần mềm không nên phụ thuộc vào những cái riêng, cụ thể (details) mà ngược lại nên phụ thuộc vào những cái chung, tổng quát (abstractions) của những cái riêng, cụ thể đó. Những cái chung, tổng quát không nên phụ vào những cái riêng, cụ thể. Sự phụ thuộc này nên được đảo ngược lại.”
- Nguyên lý Nghịch đảo phụ thuộc Không Khôngtuân tuânthủ thủ nguyên Bike nguyênlý lý Bike Open-Closed Open-Closed Vehicle Vehicle Car Car Không Khôngtuân tuânthủ thủ nguyên nguyênlý lý Truck Truck Nghịch Nghịchđảo đảophụ phụthuộc thuộc Bus Bus
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Công nghệ phần mềm: Bài 6 - Học viện Kỹ thuật Quân sự
43 p | 19 | 10
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 4 - ThS. Dương Thành Phết
26 p | 94 | 7
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Minh Thái, Phạm Đức Thành
50 p | 118 | 6
-
Bài giảng Kỹ thuật lập trình: Bài 7 - ThS. Trịnh Thành Trung
89 p | 40 | 4
-
Bài giảng Kỹ thuật phần mềm: Chương 3 - Phạm Duy Trung
68 p | 39 | 3
-
Bài giảng Nhập môn về lập trình - Chương 9: Sử dụng tập tin (file)
12 p | 40 | 3
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 1 - TS. Lý Anh Tuấn
34 p | 36 | 3
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 9 - TS. Lý Anh Tuấn
36 p | 36 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 8 - TS. Lý Anh Tuấn
45 p | 29 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 7 - TS. Lý Anh Tuấn
28 p | 18 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 6 - TS. Lý Anh Tuấn
38 p | 29 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 5 - TS. Lý Anh Tuấn
37 p | 24 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 4 - TS. Lý Anh Tuấn
29 p | 19 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 3 - TS. Lý Anh Tuấn
43 p | 23 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 0 - TS. Lý Anh Tuấn
4 p | 43 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 2 - TS. Lý Anh Tuấn
56 p | 29 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn