Sự khác nhau giữa tổng hợp, thành phần và sự phụ thuộc là gì?Sự khác biệt giữa tổng hợp, thành phần và sự phụ thuộc là gì?
Trả lời
Aggregation và phần là gần như hoàn toàn giống hệt nhau ngoại trừ việc phần được sử dụng khi cuộc sống của đứa trẻ được điều khiển hoàn toàn bởi công ty mẹ.
Aggregation
Car -> Tires
Các Tires
có thể cất cánh của đối tượng Car
và cài đặt trên một chương trình khác. Ngoài ra, nếu chiếc xe được tổng cộng, lốp xe không nhất thiết phải bị phá hủy.
Thành phần
Body -> Blood Cell
Khi đối tượng Body
bị phá hủy các BloodCells
bị phá hủy với nó.
phụ thuộc
Một mối quan hệ giữa hai đối tượng khi việc thay đổi có thể ảnh hưởng đến người khác.
Hài hước, tôi chỉ đọc một hướng dẫn nơi ví dụ về lốp xe được sử dụng để minh họa cho bố cục ... – mouviciel
thú vị, tôi đoán nó phụ thuộc vào cách bạn nhìn vào nó. Tôi không thấy làm thế nào phá hủy các đối tượng xe cũng yêu cầu rằng lốp xe cũng bị phá hủy. Ngoài ra, bạn có thể lấy lốp xe của một chiếc xe và đặt chúng trên một chiếc xe khác nhau. Đó là vấn đề với sự tương tự mặc dù tôi cho là vậy. –
Có, thực sự tôi đã hiểu tập hợp và bố cục không phải với các phép so sánh như vậy mà với mã thực tế. – mouviciel
Tổng hợp ngụ ý mối quan hệ mà trẻ có thể tồn tại độc lập với cha mẹ. Ví dụ: Lớp (phụ huynh) và Học sinh (con). Xóa Lớp và Học sinh vẫn còn tồn tại.
Thành phần ngụ ý mối quan hệ mà trẻ không thể tồn tại độc lập với cha mẹ. Ví dụ: Nhà (cha mẹ) và Phòng (trẻ em). Các phòng không tồn tại riêng biệt với Ngôi nhà.
Hai hình thức trên là ngăn chặn (do đó các mối quan hệ cha-con).
Phụ thuộc là một dạng yếu hơn của mối quan hệ và trong điều khoản mã chỉ ra rằng một lớp sử dụng khác theo tham số hoặc kiểu trả về.
Phụ thuộc là một hình thức liên kết .
Đề cập đến thực tế rằng tập hợp và thành phần là chuyên môn hóa của hình thức mối quan hệ ngăn chặn và nó sẽ là hoàn hảo. – alphazero
:-) Không nói rằng bạn đúng hay sai, nhưng hãy gees những phân loại này. Class/Student == Aggregation? ... Không theo JavaPapers.com. http://javapapers.com/oops/association-aggregation-composition-abstraction-generalization-realization-dependency/ "Lớp học chứa học sinh. Học sinh không thể tồn tại mà không có lớp. Có tồn tại thành phần giữa lớp và học sinh." – TallPaul
Btw, cá nhân tôi đồng ý với bạn ... – TallPaul
Đối tượng được liên kết với mối quan hệ sẽ không tồn tại bên ngoài đối tượng chứa. Ví dụ là một cuộc hẹn và chủ sở hữu (một người) hoặc một lịch; một TestResult và một bệnh nhân.
Mặt khác, một đối tượng được được tổng hợp bởi một đối tượng có chứa có thể tồn tại bên ngoài đối tượng chứa đối tượng đó. Ví dụ là Cửa và Nhà; một nhân viên và một bộ phận.
Một phụ thuộc liên quan đến hợp tác hoặc đoàn, nơi một yêu cầu đối tượng dịch vụ từ một đối tượng khác và là do phụ thuộc vào đối tượng đó. Là khách hàng của dịch vụ, bạn muốn giao diện dịch vụ vẫn không đổi, ngay cả khi các dịch vụ trong tương lai được cung cấp.
Tổng hợp và thành phần là các thuật ngữ mà hầu hết mọi người trong thế giới OO đã có được thông qua UML. Và UML thực hiện một công việc rất kém trong việc xác định các thuật ngữ này, như đã được chứng minh bởi, ví dụ, Henderson-Sellers và Barbier ("Cái gọi là tổng hợp này là gì?", "Chính thức hóa mối quan hệ toàn bộ trong ngôn ngữ mô hình hóa thống nhất "). Tôi không nghĩ rằng định nghĩa kết hợp và bố cục nhất quán có thể được đưa ra nếu bạn quan tâm đến việc tuân thủ UML. Tôi đề nghị bạn xem các tác phẩm được trích dẫn.
Về sự phụ thuộc, đó là mối quan hệ rất trừu tượng giữa các loại (không phải đối tượng) có thể có nghĩa là hầu hết mọi thứ.
Ngăn chặn: - Ở đây để truy cập đối tượng bên trong, chúng tôi phải sử dụng đối tượng bên ngoài. Chúng ta có thể tái sử dụng đối tượng chứa. Tổng hợp: - Ở đây chúng ta có thể truy cập đối tượng bên trong một lần nữa và một lần nữa mà không cần sử dụng đối tượng bên ngoài.
Một đối tượng có thể chứa một đối tượng khác như một phần thuộc tính của nó.
- tài liệu chứa các câu chứa từ.
- Hệ thống máy tính có đĩa cứng, ram, bộ xử lý, v.v.
Vì vậy ngăn chặn không cần thiết. ví dụ: hệ thống máy tính có bảo hành.
Tổng hợp - phần có thể chia tách cho toàn bộ. Phần này có một bản sắc riêng của nó, tách biệt với những gì nó là một phần của nó. Bạn có thể chọn phần đó và di chuyển nó đến một đối tượng khác. (ví dụ thế giới thực: bánh xe -> ô tô, máu -> cơ thể)
Thành phần - phần không thể tách rời của toàn bộ. Bạn không thể di chuyển phần này sang đối tượng khác. giống như một tài sản. (ví dụ thế giới thực: đường cong -> đường, cá tính -> người, max_speed -> ô tô, tài sản của đối tượng -> đối tượng)
Lưu ý rằng mối quan hệ là tổng hợp trong một thiết kế có thể là bố cục trong một thiết kế khác. Tất cả về cách quan hệ được sử dụng trong thiết kế cụ thể đó.
sự phụ thuộc - nhạy cảm với thay đổi. (lượng mưa -> thời tiết, vị trí -> phần thân)
Lưu ý: "Máu" -> Máu "có thể là" Thành phần "vì Tế bào máu không thể tồn tại mà không có thực thể gọi là Máu" Máu "-> Cơ thể" có thể là "tập hợp" như máu có thể tồn tại mà không có thực thể được gọi là cơ thể.
- 1. Sự khác biệt giữa Tổng và Tổng hợp trong LINQ
- 2. Sự khác biệt giữa phần .got và .got.plt là gì?
- 3. Sự khác biệt giữa phụ thuộc loại "nhập" và "pom" là gì?
- 4. Sự khác biệt giữa Thuộc tính phụ thuộc SetValue() & SetCurrentValue()
- 5. Thuật ngữ: Sự khác biệt giữa một lớp học và một thành phần là gì?
- 6. Sự khác biệt giữa mối quan hệ Thành phần và Hiệp hội là gì?
- 7. Sự khác biệt giữa Thành phần OSGi và Dịch vụ
- 8. Sự khác nhau giữa kho lưu trữ và sự phụ thuộc trong Maven là gì?
- 9. Sự khác biệt giữa '&' và ',' trong Generics Java là gì?
- 10. Sự khác biệt giữa INTERSECT và WHERE IN là gì?
- 11. SQLAlchemy: Sự khác biệt giữa flush() và commit() là gì?
- 12. Sự khác biệt giữa .closest() và .parents ('selector') là gì?
- 13. Sự khác biệt giữa UIView và CALayer là gì?
- 14. Sự khác biệt giữa while (true) và loop là gì?
- 15. sự khác biệt giữa ngSwitch và ngInclude là gì?
- 16. Sự khác biệt giữa thuộc tính phụ thuộc và thuộc tính đính kèm trong WPF là gì?
- 17. Sự khác biệt giữa "1.0f" và "1.f" là gì?
- 18. Sự khác biệt giữa Phiên và Cookie là gì?
- 19. Sự khác biệt giữa sed và awk là gì?
- 20. Sự khác biệt phụ thuộc giữa Phát hành & Gỡ lỗi
- 21. Sự khác biệt giữa \ r và \ n là gì?
- 22. Sự khác biệt giữa struct_time và datetime là gì?
- 23. Unix: Sự khác biệt giữa nguồn và xuất là gì?
- 24. sự khác biệt giữa DoCmd.SetWarnings và CurrentDB.Execute là gì
- 25. Sự khác biệt giữa gói android.opengl và javax.microedition.khronos.opengles là gì?
- 26. là gì sự khác biệt giữa SQL_Latin1_General_CP1_CI_AS và SQL_Latin1_General_CP1_CI_AI
- 27. Sự khác biệt giữa đúc và co giật là gì?
- 28. Maven: Tổng hợp và phụ thuộc
- 29. Sự khác nhau giữa thành phần và quyền hạn là gì?
- 30. Sự khác biệt giữa JavaBean và POJO là gì?
mở lại: Liên kết trùng lặp không chính xác cùng một câu hỏi (phụ thuộc vs liên kết). Ngoài ra, câu hỏi này nhận được nhiều sự liên quan. –