OOAD - Nguyên tắc hướng đối tượng

Nguyên tắc của hệ thống hướng đối tượng

Khung khái niệm của hệ thống hướng đối tượng dựa trên mô hình đối tượng. Có hai loại phần tử trong hệ thống hướng đối tượng:

Major Elements- Về cơ bản, điều đó có nghĩa là nếu một mô hình không có bất kỳ yếu tố nào trong số các yếu tố này, nó sẽ không còn hướng đối tượng. Bốn yếu tố chính là -

  • Abstraction
  • Encapsulation
  • Modularity
  • Hierarchy

Minor Elements- Theo quan điểm nhỏ, có nghĩa là những yếu tố này hữu ích, nhưng không phải là một phần không thể thiếu của mô hình đối tượng. Ba yếu tố phụ là -

  • Typing
  • Concurrency
  • Persistence

Trừu tượng

Trừu tượng có nghĩa là tập trung vào các tính năng thiết yếu của một phần tử hoặc đối tượng trong OOP, bỏ qua các thuộc tính không liên quan hoặc ngẫu nhiên của nó. Các tính năng cần thiết có liên quan đến bối cảnh mà đối tượng đang được sử dụng.

Grady Booch đã định nghĩa sự trừu tượng như sau:

“Sự trừu tượng biểu thị các đặc điểm cơ bản của một đối tượng giúp phân biệt nó với tất cả các loại đối tượng khác và do đó cung cấp các ranh giới khái niệm được xác định rõ ràng, liên quan đến quan điểm của người xem.”

Example - Khi một lớp Sinh viên được thiết kế, các thuộc tính enrolment_number, tên, khóa học và địa chỉ được bao gồm trong khi các đặc điểm như xung_rate và size_of_shoe bị loại bỏ, vì chúng không liên quan theo quan điểm của tổ chức giáo dục.

Đóng gói

Đóng gói là quá trình liên kết cả hai thuộc tính và phương thức với nhau trong một lớp. Thông qua tính năng đóng gói, các chi tiết bên trong của một lớp có thể được ẩn từ bên ngoài. Lớp có các phương thức cung cấp giao diện người dùng mà các dịch vụ do lớp cung cấp có thể được sử dụng.

Môđun

Mô-đun là quá trình phân tách một vấn đề (chương trình) thành một tập hợp các mô-đun để giảm mức độ phức tạp tổng thể của vấn đề. Booch đã xác định mô-đun là -

“Tính mô-đun là thuộc tính của một hệ thống đã được phân tách thành một tập hợp các mô-đun gắn kết và liên kết lỏng lẻo.”

Về bản chất, tính mô-đun được liên kết với tính đóng gói. Mô-đun có thể được hình dung như một cách ánh xạ các phần trừu tượng đóng gói thành các mô-đun thực, vật lý có tính liên kết cao trong các mô-đun và sự tương tác hoặc ghép nối giữa các mô-đun của chúng thấp.

Hệ thống cấp bậc

Theo cách nói của Grady Booch, “Hệ thống phân cấp là thứ hạng hoặc thứ tự của sự trừu tượng”. Thông qua hệ thống phân cấp, một hệ thống có thể được tạo thành từ các hệ thống con có liên quan với nhau, các hệ thống này có thể có các hệ thống con của riêng chúng, v.v. cho đến khi đạt được các thành phần cấp nhỏ nhất. Nó sử dụng nguyên tắc “chia để trị”. Cấu trúc phân cấp cho phép mã tái sử dụng.

Hai loại phân cấp trong OOA là -

  • “IS–A” hierarchy- Nó định nghĩa mối quan hệ phân cấp trong kế thừa, theo đó từ siêu lớp, một số lớp con có thể được dẫn xuất mà có thể lại có các lớp con, v.v. Ví dụ, nếu chúng ta lấy một Hoa hồng cấp từ một Hoa cấp một, chúng ta có thể nói rằng hoa hồng “là – một” hoa.

  • “PART–OF” hierarchy- Nó xác định mối quan hệ thứ bậc trong tập hợp mà một lớp có thể được cấu tạo từ các lớp khác. Ví dụ, một bông hoa bao gồm các lá đài, cánh hoa, nhị hoa và lá noãn. Có thể nói rằng một cánh hoa là một "bộ phận" của hoa.

Đánh máy

Theo các lý thuyết về kiểu dữ liệu trừu tượng, kiểu là một đặc điểm của một tập hợp các phần tử. Trong OOP, một lớp được hình dung như một kiểu có các thuộc tính khác biệt với bất kỳ kiểu nào khác. Đánh máy là việc thực thi khái niệm rằng một đối tượng là một thể hiện của một lớp hoặc một kiểu. Nó cũng bắt buộc rằng các đối tượng thuộc các loại khác nhau nói chung không được hoán đổi cho nhau; và chỉ có thể được hoán đổi cho nhau một cách rất hạn chế nếu thực sự bắt buộc phải làm như vậy.

Hai kiểu gõ là -

  • Strong Typing - Ở đây, hoạt động trên một đối tượng được kiểm tra tại thời điểm biên dịch, như trong ngôn ngữ lập trình Eiffel.

  • Weak Typing- Tại đây, tin nhắn có thể được gửi đến bất kỳ lớp nào. Hoạt động chỉ được kiểm tra tại thời điểm thực thi, như trong ngôn ngữ lập trình Smalltalk.

Đồng tiền

Tính đồng thời trong các hệ điều hành cho phép thực hiện đồng thời nhiều tác vụ hoặc quy trình. Khi một quá trình tồn tại trong một hệ thống, người ta nói rằng có một luồng điều khiển duy nhất. Tuy nhiên, hầu hết các hệ thống có nhiều luồng, một số đang hoạt động, một số đang chờ CPU, một số bị treo và một số đã kết thúc. Các hệ thống có nhiều CPU vốn đã cho phép các luồng điều khiển đồng thời; nhưng các hệ thống chạy trên một CPU sử dụng các thuật toán thích hợp để cung cấp thời gian CPU công bằng cho các luồng để kích hoạt tính đồng thời.

Trong môi trường hướng đối tượng, có các đối tượng hoạt động và không hoạt động. Các đối tượng hoạt động có các luồng điều khiển độc lập có thể thực thi đồng thời với các luồng của các đối tượng khác. Các đối tượng hoạt động đồng bộ hóa với nhau cũng như với các đối tượng tuần tự thuần túy.

Sự bền bỉ

Một đối tượng chiếm một không gian bộ nhớ và tồn tại trong một khoảng thời gian cụ thể. Trong lập trình truyền thống, tuổi thọ của một đối tượng thường là tuổi thọ của quá trình thực thi chương trình đã tạo ra nó. Trong tệp hoặc cơ sở dữ liệu, tuổi thọ của đối tượng dài hơn thời gian của quá trình tạo đối tượng. Thuộc tính này mà một đối tượng tiếp tục tồn tại ngay cả sau khi người tạo ra nó không còn tồn tại được gọi là tính bền bỉ.