Hướng dẫn what is composition and aggregation in python? - Thành phần và tập hợp trong python là gì?

Làm thế nào để thực hiện kế thừa, thành phần và tập hợp trong Python?

Di sản

Wikipedia: Trong lập trình hướng đối tượng, kế thừa là cơ chế dựa trên một đối tượng hoặc lớp trên một đối tượng khác (kế thừa dựa trên nguyên mẫu) hoặc lớp (kế thừa dựa trên lớp), duy trì việc thực hiện tương tự.

Hãy để tôi giải thích nó về mặt khoa học máy tính. Bạn sẽ thấy mã dưới đây chứa hai lớp. Một người là người và người khác là sinh viên, nơi sinh viên lớp có tất cả các thành viên dữ liệu mà người có nhưng không phải là ngược lại. Hơn nữa, học sinh lớp có thêm một tính năng hoặc thành viên dữ liệu có tên Gradyear không có mặt trực tiếp.

Vì vậy, chỉ đơn giản là chúng ta có thể nói rằng nó thiết lập một mối quan hệ của một người khác là một mối quan hệ giữa các học sinh và người. Nói rằng, sinh viên là một loại người.

Thành phần

Trong thành phần, một lớp hoạt động như một thùng chứa của lớp khác (nội dung). Nếu bạn phá hủy container thì không có sự tồn tại của nội dung. Điều đó có nghĩa là nếu lớp container tạo một đối tượng hoặc giữ một đối tượng nội dung.

Thành phần đã thành lập mối quan hệ của Has Has-a, giữa các đối tượng. Trong mã bên dưới, bạn có thể thấy rằng người lớp đang tạo ra một đối tượng trái tim. Vì vậy, người là chủ sở hữu của đối tượng trái tim. Chúng ta cũng có thể nói rằng các đối tượng người và trái tim được kết hợp chặt chẽ.

Tập hợp

Không nhầm lẫn, tập hợp là một dạng thành phần trong đó các đối tượng được ghép nối một cách lỏng lẻo. Không có bất kỳ đối tượng hoặc lớp sở hữu đối tượng khác. Nó chỉ tạo ra một tài liệu tham khảo. Nó có nghĩa là nếu bạn phá hủy container, nội dung vẫn tồn tại.

Trong mã dưới đây, người chỉ tham khảo trái tim. Không có sự kết hợp chặt chẽ giữa đối tượng trái tim và người.

Hy vọng bạn thích đọc sách. Mã hóa hạnh phúc !!!

Nếu tôi hiểu chính xác, tổng hợp so với thành phần là về trách nhiệm của một đối tượng đối với các thành viên của nó (ví dụ: nếu bạn xóa một thể hiện, bạn cũng có xóa các thành viên của nó không?).

Chủ yếu, nó sẽ phụ thuộc rất nhiều vào việc thực hiện. Ví dụ: để tạo một lớp A nhận được một thể hiện của lớp B (tập hợp), bạn có thể viết như sau:

class B(object): pass

class A(object):
    def __init__(self, b):
        self.b = b

b = B()
a = A(b)

Nhưng như một điểm thận trọng, không có gì tích hợp cho Python sẽ ngăn bạn đi qua một thứ khác, ví dụ:

a = A("string") # still valid

Nếu bạn muốn tạo phiên bản B bên trong hàm tạo của A (bố cục), bạn có thể viết như sau:

class A(object):
    def __init__(self):
        self.b = B()

Hoặc, bạn có thể tiêm lớp vào hàm tạo, sau đó tạo một thể hiện, như vậy:

class A(object):
    def __init__(self, B):
        self.b = B()

Bên cạnh đó, trong ít nhất là ví dụ đầu tiên của bạn và có thể là thứ hai, bạn đang đặt B theo định nghĩa lớp của B, không phải là một ví dụ của nó:

class A(object):
    def __init__(self, B):
        self.B = B

>>> a = A()
>>> a.B # class definition
<class __main__.B at 0x028586C0>
>>> a.B() # which you can make instances of
<__main__.B instance at 0x02860990>

Vì vậy, bạn kết thúc với một ví dụ chỉ vào định nghĩa lớp của B, mà tôi khá chắc chắn không phải là những gì bạn đang theo đuổi. Mặc dù, điều đó thường khó thực hiện hơn nhiều trong các ngôn ngữ khác, vì vậy tôi hiểu nếu đó là một trong những điểm của sự nhầm lẫn.

Hiệp hội là một trong những khái niệm quan trọng nhất trong lập trình hướng đối tượng. Thật khó để phát triển phần mềm có cấu trúc tốt mà không nắm bắt mạnh mẽ các khái niệm này. Nó xác định các quy tắc giao tiếp giữa các lớp.

Association:

Đó là một mối quan hệ giữa hai lớp và mối quan hệ đó được thiết lập thông qua các đối tượng của họ. Mỗi đối tượng có vòng đời riêng và không có đối tượng chủ sở hữu. Đó là một loại mối quan hệ yếu kém. Nó có thể là một-một, một-nhiều, nhiều người hoặc nhiều người hoặc nhiều người.

Ví dụ, học sinh và giáo viên, cả hai lớp được liên kết với nhau. Các đối tượng của mỗi lớp có vòng đời riêng của họ và không có chủ sở hữu.

Aggregation:

Đó là một hiệp hội đơn hướng. Khi một đối tượng có thể truy cập vào một đối tượng khác thì mối quan hệ đó được gọi là tập hợp. Các đối tượng có thể tồn tại độc lập trong mối quan hệ này.

Chúng ta có thể xác định nó theo cách ngắn gọn hơn, tập hợp là khi một đối tượng của một lớp có thể sở hữu hoặc truy cập vào đối tượng của một lớp khác.

Hãy lấy một ví dụ về một sinh viên và khoa. Có hai lớp, một là một sinh viên và một là một bộ phận. Học sinh được chỉ định một số đăng ký dựa trên bộ phận cụ thể. Hãy thực hiện mã của nó trong Python.

Tập hợp được xác định bởi mối quan hệ có-A giữa các đối tượng.

Trong UML, nó được ký hiệu là một đường thẳng với một mũi tên trống ở một đầu.

Composition:

Nó xác định một loại mối quan hệ mạnh mẽ. Nó có thể được định nghĩa là khi một lớp có thể tham chiếu một hoặc nhiều đối tượng của một lớp khác trong biến thể hiện của nó. Trong thành phần, các đối tượng không thể tồn tại độc lập.

Chúng tôi có thể thực hiện ví dụ trên của sinh viên và bộ phận theo cách sáng tác. Trong ví dụ này, đối tượng sinh viên được khởi tạo bên trong đối tượng bộ phận. Bất cứ khi nào một đối tượng bộ phận bị phá hủy, một đối tượng sinh viên sẽ tự động phá hủy.

Thành phần được định nghĩa là một phần của mối quan hệ giữa các đối tượng.

Trong UML, nó được ký hiệu là một đường thẳng với một mũi tên đầy ở một đầu.

Tham gia Faun: Trang web 💻 | Podcast🎙 | Twitter🐦 | Facebook👥 | Instagram📷 | Nhóm Facebook 🗣 | LinkedIn Group💬 | Slack 📱 | Cloud nativenews📰 | Thêm.Website💻|Podcast🎙️|Twitter 🐦|Facebook👥|Instagram📷|Facebook Group 🗣️|Linkedin Group💬| Slack 📱|Cloud Native News 📰|More.

Nếu bài đăng này hữu ích, vui lòng nhấp vào nút Clap 👏 bên dưới một vài lần để hiển thị sự hỗ trợ của bạn cho tác giả 👇

Thành phần và tập hợp là gì?

Tập hợp có nghĩa là một đối tượng là chủ sở hữu của một đối tượng khác.com có ​​nghĩa là một đối tượng được chứa trong một đối tượng khác. Hướng của một mối quan hệ là một yêu cầu trong cả bố cục và tập hợp. Hướng chỉ định đối tượng nào chứa đối tượng khác. Cả hai đều có một hướng liên kết duy nhất. Composition means one object is contained in another object. The direction of a relation is a requirement in both Composition and Aggregation. The direction specifies which object contains the other one. Both have a single direction of association.

Thành phần trong Python là gì?

Thành phần là một khái niệm mà mô hình A có mối quan hệ.Nó cho phép tạo các loại phức tạp bằng cách kết hợp các đối tượng của các loại khác.Điều này có nghĩa là một lớp tổng hợp có thể chứa một đối tượng của một thành phần lớp khác.Mối quan hệ này có nghĩa là một tổng hợp có một thành phần.a concept that models a has a relationship. It enables creating complex types by combining objects of other types. This means that a class Composite can contain an object of another class Component . This relationship means that a Composite has a Component .

Tổng hợp và bố cục với ví dụ là gì?

Tập hợp ngụ ý một mối quan hệ mà đứa trẻ có thể tồn tại độc lập với cha mẹ.Ví dụ: Lớp (phụ huynh) và học sinh (trẻ em).Xóa lớp và các sinh viên vẫn tồn tại.Thành phần ngụ ý một mối quan hệ mà đứa trẻ không thể tồn tại độc lập với cha mẹ.. Example: Class (parent) and Student (child). Delete the Class and the Students still exist. Composition implies a relationship where the child cannot exist independent of the parent.

Sự khác biệt giữa tập hợp và mối quan hệ thành phần là gì?

Sự khác biệt chính giữa tập hợp và thành phần trong mối quan hệ tổng hợp, các đối tượng được liên kết với nhau có thể vẫn nằm trong phạm vi của một hệ thống mà không có nhau.Nhưng trong một mối quan hệ thành phần, các đối tượng được liên kết với nhau không thể ở trong phạm vi mà không có nhau.In an aggregation relationship, objects that are associated with each other can remain in the scope of a system without each other. But in a composition relationship, objects that are associated with each other cannot remain in the scope without each other.