Cho các ví dụ minh họa trong windows Bài làm Mỗi hệ điều hành mới được phát triển từ một phiên bản nào đó phải đảm bảo tính kế thừa từ phiên bản trước đó.. Hệ thống mới phải tồn tại tro
Trang 1Trình bày tính chất kế thừa và thích nghi Hãy nêu vai trò và ý nghĩa của tính chất này Tính chất này không được áp dụng với các phần mềm nào và tại sao ? Hãy nêu cơ chế đảm bảo tính thích nghi
Cho các ví dụ minh họa trong windows
Bài làm
Mỗi hệ điều hành mới được phát triển từ một phiên bản nào đó phải đảm bảo tính
kế thừa từ phiên bản trước đó Mọi chương trình áp dụng đã có , nếu không vi phạm các quy tắc bảo vệ đều phải thực hiện được trên hệ điều hành mới Điều này tạo điều kiện cho người dùng có thể chuyển sang hệ thống mới với những tính năng ưu việt hơn, tiếp tục làm việc bình thường với vốn chương trình và dữ liệu đã
có của mình
Hệ thống mới phải tồn tại trong thời gian đủ dài , thích nghi với những điều kiện
và thiết bị mới đồng thời phải có khả năng cho phép người dùng chuyển đổi từ dữ liệu sang dạng có thể truy nhập được bởi các công cụ trong hệ thống cũ
t
Thời điểm tạo
OS
Kế thừa
Thích nghi
Trang 2Ví dụ: Khi chuyển sang chế độ đặt tên dài , dữ liệu lưu trữ trên phải tổ chức sao cho các công cụ chỉ làm việc với cách đặt tên ngắn cho files cơ bản vẫn làm việc bình thường như các files đó không phải là có tên dài
Hệ điều hành phải có tính tổng quát theo thời gian :phải kế thừa các ưu điểm, khắc phục các nhược điểm của phiên bản trước và khả năng thích nghi với những thay đổi trong tương lai.Khi nâng cấp hệ điều hành thì các thao tác , thông báo không được thay đổi ; hoặc nếu có thay đổi thì cần hạn chế và phải được hướng dẫn cụ thể khi chuyển đổi từ phiên bản này sang phiên bản khác
Hệ điều hành phải có tính mở để có thể dễ dàng nâng cấp cải thiện hệ thống hay hệ điều hành phải là hệ thống mở
*Nguyên lí xây dựng 1 hệ thống mở thường dựa vào 2 nguyên tắc cơ bản:
-Nguyên tắc Môđun:
Trang 3+ Hệ thống được xây dựng từ những môđun độc lập và tồn tại bộ quy tắc liên kết chúng thành hệ thống có tổ chức
+Các môđun quan hệ với nhau thông qua các dữ liệu vào ra,các đối số
+Quan hệ phân cấp của mô đun được xác lập khi chúng liên kết với nhau để giải quyết những vẫn đề phức tạp
-Nguyên tắc sinh:
Mô đun khởi sinh hệ điều hành
Trong windows có rất nhiều vị dụ về tính kế thừa và thích nghi :
-Tính kế thừa trong Lập trình hướng đối tượng: Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính chất này
Ví dụ : Chúng ta sẽ xây dựng một tập các lớp mô tả cho thư viện các ấn phẩm Có hai kiểu ấn phẩm: tạp chí và sách Chúng ta có thể tạo một ấn phẩm tổng quát bằng cách định nghĩa các thành phần dữ liệu tương ứng với số trang, mã số tra cứu, ngày tháng xuất bản, bản quyền và nhà xuất bản Các ấn phẩm có thể được lấy ra, cất đi
và đọc Đó là các phương thức thực hiện trên một ấn phẩm Tiếp đó chúng ta định nghĩa hai lớp dẫn xuất tên là tạp chí và sách Tạp chí có tên, số ký phát hành và chứa nhiều bài của các tác giả khác nhau Các thành phần dữ liệu tương ứng với các yếu tố này được đặt vào định nghĩa của lớp tạp chí Tạp chí cũng cần có một phương thức nữa đó là đặt mua Các thành phần dữ liệu xác định cho sách sẽ bao gồm tên của (các) tác giả, loại bìa (cứng hay mềm) và số hiệu ISBN của nó Như vậy chúng ta có thể thấy, sách và tạp chí có chung các đặc trưng ấn phẩm, trong khi vẫn có các thuộc tính riêng của chúng
Trang 4Lớp ấn phẩm và các lớp dẫn xuất của nó.
Với tính kế thừa, chúng ta không phải mất công xây dựng lại từ đầu các lớp mới, chỉ cần bổ sung để có được trong các lớp dẫn xuất các đặc trưng cần thiết
- Tính kế thừa trong lập trình C++
Kế thừa từ một lớp cơ sở có thể được khai báo thông qua các đặc tính công
cộng,bảo tồn, hay riêng tư Những đặc tính này cho phép xác định khi nào các lớp dẫn xuất hay không liên quan có thể sử dụng các thành viên công cộng, bảo tồn, hay riêng tư của lớp cơ sở Tuy nhiên, chỉ có sự kế thừa dạng công cộng là hoàn toàn theo đúng ý nghĩa của việc "kế thừa" Hai dạng khác thì ít được dùng hơn Nếu các đặc tả này không được khai báo thì việc kế thừa được gán mặc định là dạng riêng tư cho lớp cơ sở và dạng công cộng cho một cấu trúc cơ sở
Trang 5Các lớp cơ sở có thể được khai báo là ảo (thông qua từ khóa virtual ) Kế thừa ảo bảo đảm rằng chỉ có một thực thể của lớp cơ sở tồn tại trong đồ thị kế thừa, tránh được một số vấn đề mơ hồ của việc đa kế thừa
Đa kế thừa cũng là một tính năng có nhiều tranh cãi trong C++ Tính đa kế thừa cho phép một lớp được dẫn xuất từ nhiều hơn một lớp cơ sở; điều này có thể dẫn tới một đồ thị phức tạp của các quan hệ kế thừa Thí dụ, lớp "Buổi học" có thể kế thừa từ hai lớp "thời gian" và "bộ môn" Một số ngôn ngữ khác như Java, tiến hành cách thức tương tự bằng cách cho phép kế thừa của nhiều giao diện trong khi giới hạn số lượng của các lớp cơ sở (kế thừa) chỉ còn là một lớp ( giao diện , không như lớp, không cho phép thiết lập nội dung của các thành viên và do đó không thể có thực thể)
+ Sử dụng các từ khóa VIRTUAL và OVERRIDEđể hiện thực tính kế thừa
Trang 6+Sử dụng từ khóa NEW :