Xem mẫu
trêng ®¹i häc KINH TÕ QUèC D¢N VIỆN CÔNG NGHỆ THÔNG TIN – KINH TẾ
TIỂU LUẬN
SVTH: PHẠM ANH TÚ
MSV: 11134279
MÔN: NGUYÊN LÝ NGÔN NGỮ LẬP TRÌNH
ĐỀ TÀI: Nghiên cứu các vấn đề về nguyên lý ngôn ngữ lập
trình hướng đối tượng và cài đặt thử nghiệm bài
toán tự chọn bằng ngôn ngữ lập trình hướng đối tượng C+
+.
HÀ NỘI THÁNG 4 NĂM 2015
MỤC LỤC
I, Nguyên lý OpenClosed……………………………………………trang 3
II, Nguyên lý Nghịch đảo phụ thuộc…………………………….......trang 9
III, Nguyên lý Thay thế Liskov……………………………...............trang
12
IV, Nguyên lý Phân tách interface……………………………..........trang 17
2
Nguyên Lí Của Lập Trình Hướng Đối Tượng
Phương pháp lập trình hướng đối tượng đã được nghiên cứu và phát triển từ lâu
nhưng việc vận dụng nó như thế nào cho hiệu quả trong việc xây dựng phần mềm là
điều vẫn còn khá mơ hồ đối với nhiều người. Thế nào là một phần mềm hướng đối
tượng ? Đâu là những cơ sở nền tảng để xây dựng được phần mềm theo tư tưởng
hướng đối tượng đúng nghĩa ? Bài viết này trình bày về các nguyên lý lập trình hướng
đối tượng. Đó là những quy tắc phân tích thiết kế hướng đối tượng cơ bản, mang tính
chất khái quát. Do là nguyên lý nên nó có tính trừu tượng cao chứ không đi vào chi tiết
cách thức giải quyết vấn đề cụ thể (việc hiện thực hóa những nguyên lý lập trình
hướng đối tượng đòi hỏi chúng ta phải xem xét đến Design Patterns)
I, Nguyên lý OpenClosed (The OpenClosed Principle)
1. 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).
2. Nội dung
Các thực thể trong một phần mềm không đứng riêng lẻ mà có sự gắn kết
chặt chẽ với nhau. Chúng phối hợp hoạt động để cùng nhau thực hiện các
chức năng của phần mềm.
Do đó, việc nâng cấp, mở rộng một thực thể nào đó sẽ ảnh hưởng đến
những thực thể liên quan. Điều này có thể dẫn đến việc phải nâng cấp,
3
mở rộng cả những thực thể liên quan đó. Và trong thời đại đầy biến động
hiện nay, việc phải thường xuyên nâng cấp, mở rộng các thực thể trong
phần mềm là điều khó tránh khỏi.
Để làm cho quá trình bảo trì, nâng cấp, mở rộng phần mềm diễn ra dễ
dàng và hiệu quả hơn, các thực thể phần mềm nên được xây dựng tuân
theo nguyên lý OpenClosed. Điều này có nghĩa là các thực thể phần mềm
nên được xây dựng sao cho việc nâng cấp, mở rộng đồng nghĩa với việc
thêm vào những cái mới chứ không phải là thay đổi những cái hiện có, từ
đó tránh được việc phải thay đổi các thực thể liên quan.
Xét ví dụ một đoạn chương trình vẽ đường thẳng và hình chữ nhật bằng
C#.
public enum ShapeType
{
LINE,
RECTANGLE
}
public abstract class Shape
{
public abstract ShapeType getType();
}
public class Line: Shape
{
public override ShapeType getType()
{
4
return ShapeType.LINE;
}
public void drawLine()
{
// Draws the line...
}
}
public class Rectangle: Shape
{
public override ShapeType getType()
{
return ShapeType.RECTANGLE;
}
public void drawRectangle()
{
// Draws the rectangle...
}
}
public void draw(ArrayList shapeList)
{
Line line;
Rectangle rectangle;
5
...
- tailieumienphi.vn
nguon tai.lieu . vn