OOAD - Mô hình đối tượng
Mô hình đối tượng trực quan hóa các yếu tố trong một ứng dụng phần mềm về các đối tượng. Trong chương này, chúng ta sẽ xem xét các khái niệm và thuật ngữ cơ bản của các hệ thống hướng đối tượng.
Đối tượng và lớp học
Các khái niệm về các đối tượng và các lớp thực chất được liên kết với nhau và tạo thành nền tảng của mô hình định hướng đối tượng.
Object
Một đối tượng là một yếu tố trong thế giới thực trong môi trường hướng đối tượng có thể có sự tồn tại vật lý hoặc khái niệm. Mỗi đối tượng có -
Danh tính phân biệt nó với các đối tượng khác trong hệ thống.
Trạng thái xác định các thuộc tính đặc trưng của một đối tượng cũng như các giá trị của các thuộc tính mà đối tượng nắm giữ.
Hành vi đại diện cho các hoạt động có thể nhìn thấy bên ngoài được thực hiện bởi một đối tượng về các thay đổi trong trạng thái của nó.
Các đối tượng có thể được mô hình hóa theo nhu cầu của ứng dụng. Một đối tượng có thể có sự tồn tại vật lý, như khách hàng, xe hơi, v.v.; hoặc một sự tồn tại khái niệm vô hình, như một dự án, một quá trình, v.v.
Class
Một lớp đại diện cho một tập hợp các đối tượng có các thuộc tính đặc trưng giống nhau thể hiện hành vi chung. Nó đưa ra kế hoạch chi tiết hoặc mô tả các đối tượng có thể được tạo ra từ nó. Tạo một đối tượng như là một thành viên của một lớp được gọi là khởi tạo. Vì vậy, đối tượng là một thể hiện của một lớp.
Các thành phần của một lớp là -
Một tập hợp các thuộc tính cho các đối tượng sẽ được khởi tạo từ lớp. Nói chung, các đối tượng khác nhau của một lớp có một số khác biệt về giá trị của các thuộc tính. Các thuộc tính thường được gọi là dữ liệu lớp.
Một tập hợp các hoạt động mô tả hành vi của các đối tượng của lớp. Hoạt động cũng được gọi là chức năng hoặc phương thức.
Thí dụ
Chúng ta hãy xem xét một lớp đơn giản, Circle, đại diện cho hình vòng tròn trong một không gian hai chiều. Các thuộc tính của lớp này có thể được xác định như sau -
- tọa độ x, để biểu thị tọa độ x của trung tâm
- y tọa độ, để biểu thị tọa độ yẩu của trung tâm
- a, để biểu thị bán kính của hình tròn
Một số hoạt động của nó có thể được định nghĩa như sau -
- findArea (), phương pháp tính diện tích
- findCircumference (), phương pháp tính chu vi
- scale (), phương thức tăng hoặc giảm bán kính
Trong thời gian khởi tạo, các giá trị được gán cho ít nhất một số thuộc tính. Nếu chúng ta tạo một đối tượng my_circle, chúng ta có thể gán các giá trị như x-tọa độ: 2, tọa độ y: 3 và a: 4 để mô tả trạng thái của nó. Bây giờ, nếu thang đo hoạt động () được thực hiện trên my_circle với hệ số tỷ lệ là 2, giá trị của biến a sẽ trở thành 8. Thao tác này mang lại sự thay đổi trạng thái của my_circle, tức là, đối tượng đã thể hiện một số hành vi nhất định.
Đóng gói và ẩn dữ liệu
Encapsulation (Đó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 việc đó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. Nó cho phép các phần tử của lớp được truy cập từ bên ngoài chỉ thông qua giao diện được cung cấp bởi lớp.
Data Hiding (Ẩn dữ liệu)
Thông thường, một lớp được thiết kế sao cho dữ liệu (thuộc tính) của nó chỉ có thể được truy cập bằng các phương thức lớp và được cách ly khỏi truy cập bên ngoài trực tiếp. Quá trình cách ly dữ liệu của đối tượng được gọi là ẩn dữ liệu hoặc ẩn thông tin.
Thí dụ
Trong Vòng tròn lớp, việc ẩn dữ liệu có thể được kết hợp bằng cách ẩn các thuộc tính từ bên ngoài lớp và thêm hai phương thức nữa vào lớp để truy cập dữ liệu của lớp, cụ thể là -
- setValues (), phương thức gán giá trị cho tọa độ x, tọa độ y và a
- getValues (), phương thức để lấy các giá trị của tọa độ x, tọa độ y và
Ở đây, dữ liệu riêng tư của đối tượng my_circle không thể được truy cập trực tiếp bằng bất kỳ phương thức nào không được gói gọn trong Vòng tròn lớp. Thay vào đó, nó nên được truy cập thông qua các phương thức setValues () và getValues ().
Message Passing (Truyền thông điệp)
Bất kỳ ứng dụng nào cũng yêu cầu một số đối tượng tương tác một cách hài hòa. Các đối tượng trong một hệ thống có thể giao tiếp với nhau bằng cách sử dụng tin nhắn. Giả sử một hệ thống có hai đối tượng: obj1 và obj2. Đối tượng obj1 gửi tin nhắn đến đối tượng obj2, nếu obj1 muốn obj2 thực thi một trong các phương thức của nó.
Các tính năng của tin nhắn đi qua là -
- Thông điệp truyền qua giữa hai đối tượng nói chung là một chiều.
- Truyền tin nhắn cho phép tất cả các tương tác giữa các đối tượng.
- Thông điệp truyền về cơ bản liên quan đến việc gọi các phương thức lớp.
- Các đối tượng trong các quy trình khác nhau có thể được tham gia vào việc truyền thông điệp.
Inheritance (Thừa kế)
Kế thừa là cơ chế cho phép các lớp mới được tạo ra khỏi các lớp hiện có bằng cách mở rộng và hoàn thiện các khả năng của nó. Các lớp hiện có được gọi là lớp cơ sở / lớp cha / siêu lớp và các lớp mới được gọi là lớp dẫn xuất / lớp con / lớp con. Lớp con có thể kế thừa hoặc rút ra các thuộc tính và phương thức của siêu lớp với điều kiện là siêu lớp cho phép như vậy. Ngoài ra, lớp con có thể thêm các thuộc tính và phương thức riêng của nó và có thể sửa đổi bất kỳ phương thức siêu hạng nào. Kế thừa định nghĩa một mạng là - một mối quan hệ.
Thí dụ
Từ một lớp Động vật có vú, một số lớp có thể được bắt nguồn như Người, Mèo, Chó, Bò, v.v ... Con người, mèo, chó và bò đều có những đặc điểm riêng biệt của động vật có vú. Ngoài ra, mỗi người có những đặc điểm riêng. Có thể nói rằng một con bò đực là - một loài động vật có vú.
Các kiểu thừa kế
Kế thừa đơn - Một lớp con xuất phát từ một siêu lớp duy nhất.
Đa kế thừa - Một lớp con xuất phát từ nhiều hơn một siêu lớp.
Kế thừa đa cấp - Một lớp con xuất phát từ một siêu lớp mà lần lượt được lấy từ một lớp khác, v.v.
Kế thừa phân cấp - Một lớp có một số lớp con, mỗi lớp có thể có các lớp con tiếp theo, tiếp tục cho một số cấp độ, để tạo thành cấu trúc cây.
Kế thừa lai - Một sự kết hợp của thừa kế đa cấp và đa cấp để tạo thành cấu trúc mạng tinh thể.
Hình dưới đây mô tả các ví dụ về các loại thừa kế khác nhau.
Polymorphism (Đa hình)
Đa hình ban đầu là một từ Hy Lạp có nghĩa là khả năng có nhiều hình thức. Trong mô hình hướng đối tượng, tính đa hình ngụ ý sử dụng các hoạt động theo các cách khác nhau, tùy thuộc vào trường hợp mà chúng đang hoạt động. Đa hình cho phép các đối tượng có cấu trúc bên trong khác nhau có giao diện bên ngoài chung. Đa hình là đặc biệt hiệu quả trong khi thực hiện kế thừa.
Thí dụ
Chúng ta hãy xem xét hai lớp, Circle và Square, mỗi lớp có một phương thức findArea (). Mặc dù tên và mục đích của các phương thức trong các lớp là giống nhau, nhưng việc thực hiện bên trong, tức là, quy trình tính diện tích là khác nhau đối với mỗi lớp. Khi một đối tượng của lớp Circle gọi phương thức findArea () của nó, thao tác tìm diện tích của vòng tròn mà không có bất kỳ xung đột nào với phương thức findArea () của lớp Square.
Tổng quát hóa và chuyên biệt hóa (Generalization and Specialization)
Khái quát hóa và chuyên môn hóa đại diện cho một hệ thống phân cấp các mối quan hệ giữa các lớp, trong đó các lớp con kế thừa từ các siêu lớp.
Tổng quát hóa (Generalization)
Trong quá trình khái quát hóa, các đặc điểm chung của các lớp được kết hợp để tạo thành một lớp ở mức phân cấp cao hơn, tức là các lớp con được kết hợp để tạo thành một siêu lớp tổng quát. Nó đại diện cho một mối quan hệ là - một - loại - của mối quan hệ. Ví dụ, xe ô tô là một loại phương tiện giao thông đường bộ, hay tàu trên tàu là một loại phương tiện thủy.
Chuyên biệt hoá (Specialization)
Chuyên biệt hóa là quá trình ngược lại của khái quát hóa. Ở đây, các tính năng phân biệt của các nhóm đối tượng được sử dụng để tạo thành các lớp chuyên biệt từ các lớp hiện có. Có thể nói, các lớp con là phiên bản chuyên biệt của siêu hạng.
Hình dưới đây cho thấy một ví dụ về khái quát hóa và chuyên môn hóa.
Links and Association
Link
Một liên kết đại diện cho một kết nối thông qua đó một đối tượng cộng tác với các đối tượng khác. Rumbaugh đã định nghĩa nó là một mối liên hệ vật lý hoặc khái niệm giữa các đối tượng. Thông qua một liên kết, một đối tượng có thể gọi các phương thức hoặc điều hướng qua một đối tượng khác. Một liên kết mô tả mối quan hệ giữa hai hoặc nhiều đối tượng.
Association
Hiệp hội là một nhóm các liên kết có cấu trúc chung và hành vi chung. Hiệp hội mô tả mối quan hệ giữa các đối tượng của một hoặc nhiều lớp. Một liên kết có thể được định nghĩa là một ví dụ của một hiệp hội.
Bằng cấp của một hiệp hội
Mức độ của một hiệp hội biểu thị số lượng các lớp liên quan đến một kết nối. Bằng cấp có thể là đơn nguyên, nhị phân, hoặc ternary.
unary relationship: Một mối quan hệ đơn phương kết nối các đối tượng của cùng một lớp.
binary relationship: Một mối quan hệ nhị phân kết nối các đối tượng của hai lớp.
tenary relationship: Một mối quan hệ ternary kết nối các đối tượng của ba hoặc nhiều lớp.
Tỷ lệ tim mạch của các hiệp hội
Cardinality của một hiệp hội nhị phân biểu thị số lượng các trường hợp tham gia vào một hiệp hội. Có ba loại tỷ lệ cardinality, cụ thể là -
one-to-one: Một đối tượng duy nhất của lớp A được liên kết với một đối tượng duy nhất của lớp B.
one-to-many: Một đối tượng của lớp A được liên kết với nhiều đối tượng của lớp B.
many-to-many: Một đối tượng của lớp A có thể được liên kết với nhiều đối tượng của lớp B và ngược lại, một đối tượng của lớp B có thể được liên kết với nhiều đối tượng của lớp A.
Tập hợp hoặc thành phần
Tập hợp hoặc thành phần là một mối quan hệ giữa các lớp mà theo đó một lớp có thể được tạo thành từ bất kỳ sự kết hợp các đối tượng của các lớp khác. Nó cho phép các đối tượng được đặt trực tiếp trong cơ thể của các lớp khác. Tập hợp được gọi là một phần của mối quan hệ của người Hồi giáo hoặc người có mối quan hệ với người khác, với khả năng điều hướng từ toàn bộ đến các bộ phận của nó. Một đối tượng tổng hợp là một đối tượng bao gồm một hoặc nhiều đối tượng khác.
Thí dụ
Trong mối quan hệ, một chiếc xe có một chiếc mô tô, một chiếc xe là toàn bộ vật thể hoặc tổng hợp, và chiếc xe máy là một bộ phận của một chiếc xe khác. Tập hợp có thể biểu thị -
Ngăn chặn vật lý - Ví dụ, một máy tính bao gồm màn hình, CPU, chuột, bàn phím, v.v.
Ngăn chặn khái niệm - Ví dụ, cổ đông có một cổ phiếu.
Lợi ích của mô hình đối tượng
Bây giờ chúng ta đã trải qua các khái niệm cốt lõi liên quan đến định hướng đối tượng, sẽ đáng để lưu ý những lợi thế mà mô hình này mang lại.
Lợi ích của việc sử dụng mô hình đối tượng là -
Nó giúp phát triển phần mềm nhanh hơn.
Nó rất dễ dàng để duy trì. Giả sử một mô-đun phát triển một lỗi, sau đó một lập trình viên có thể sửa chữa mô-đun cụ thể đó, trong khi các phần khác của phần mềm vẫn đang hoạt động.
Nó hỗ trợ nâng cấp tương đối rắc rối.
Nó cho phép tái sử dụng các đối tượng, thiết kế và chức năng.
Nó làm giảm rủi ro phát triển, đặc biệt là tích hợp các hệ thống phức tạp.
Đăng nhận xét