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ý Open­Closed……………………………………………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ý Open­Closed (The Open­Closed 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ý Open­Closed. Đ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