AGGREGATION LÀ GÌ

     

Giới thiệu

Mấy loại Association, Aggregation, Composition bản thân cứ xuất xắc nhầm qua nhầm lại hoài, thôi giờ viết một bài xích để về sau nhầm lên phát âm lại mang đến nhanh. Code mình họa mình cần sử dụng Swift nha.

Bạn đang xem: Aggregation là gì

À, đầu tiên ôn lại xíu nha:

Sự khác biệt giữa Class ( lớp ) vs Object ( đối tượng ) với Instance ( biểu đạt ): Class ( lớp ) như bản thiết kết của một Object ( đối tượng ). Instance ( biểu thị ) là 1 đơn vị chủ quyền của class

Ví dụ: lớp HocSinh sẽ có được thuộc tính maHocSinh, tenHocSinh là bản thiết kế của đối tượng người dùng học sinh. hocSinh1, hocSinh2 là 2 mô tả của lớp học Sinh

Association

Sự links giữa 2 lớp lúc mà không ai sở hữu ai.

 the lifetime of the instances of the two classes are independent of each other và there is no ownership between two classes.

Vòng đời những thể hiện nay của 2 lớp thì độc lập nhau và không tồn tại mối quan lại hệ thiết lập nào ở chỗ này cả.

class Student var name: Stringvar teachers: init(name: String, teachers: ) self.name = nameself.teachers = teachersclass Teacher var name: Stringinit(name: String) self.name = namelet teacher1 = Teacher(name: "Nguyen Van Teo")let teacher2 = Teacher(name: "Tran Thi Buoi")

let khoa = Student(name: "Khoa", teachers: )let teo = Student(name: "Teo", teachers: )

Ví dụ: Một học sinh hoàn toàn có thể liên kết ( associate ) với khá nhiều giáo viên. Học viên khoa có 2 giáo viên là teacher1, teacher2

Những biểu đạt ( instance ) của class Teacher được tạo nên ở kế bên class Student. Nên khi thằng khoa bị diệt thì 2 ông cô giáo teacher1, teacher2 cũng không bị ảnh hưởng gì.Mấy thằng học sinh khác như teo, lan, tý có thể link ( associate ) với Teacher qua các instance teacher1, teacher2. Nên ta nói là Student không tồn tại quan hệ tải ( ownership ) gì với Teacher hết ráo.

Xem thêm: Cài Đặt Phần Trăm Pin Cho Iphone X Ịn Xò, Cách Bật Hiển Thị Phần Trăm Pin Trên Iphone X

Khi vẽ vời quan hệ associate, ta sử dụng hình mũi tên như là vầy nha:

*

Aggregation

Aggregation cũng tương tự Association, tuy nhiên khác là Aggregation có quan hệ sở hữu ( ownership ) giữa các instance

class pin sạc var value = "2000mA"class CellPhonevar pin: Pin!init(pin: Pin) self.pin = pinlet sạc = Pin()let samsung = CellPhone(pin: pin)

Vậy Aggregation khác gì Associate:

Có tính mua ( ownership ) thân 2 class. Mấy sách nước ngoài người ta để là part-whole relationship. Điện thoại cần có pin. Pin sạc là bên part, smartphone là whole trong part-whole relationship.Vòng đời của part không nhờ vào vào whole. Điện thoại ( CellPhone ) cần có một viên pin ( sạc ) để hoạt động. Khi điện thoại cảm ứng hư hoàn toàn có thể đem viên pin này sang điện thoại khác.

UML cần sử dụng mũi tên này để vẽ:

*

Composition

Composition giống như như Aggregation tuy thế khác là vòng đời của thằng part sẽ bị thụ thuộc và thằng whole

class Roomvar name = "Phong69"class hotel var rooms = ()func getRoom()var room1 = Room()var room2 = Room()self.rooms.append(room1)self.rooms.append(room2)

let khách sạn = Hotel()

Khi hotel ( whole ) bị diệt thì room1, room2 ( part ) cũng bị hủy theo. Có thể nói là vòng đời của thằng part bị phụ thuộc vào vòng đời của whole trong part-whole relationship

*

Nhìn loại hình đến dễ ghi nhớ nào:

*

Dependency

Khi một class A phụ thuộc vào và một class B, những biến đổi ở B bao gồm thể tác động đến A.

Xem thêm: Những Mẫu Thiệp Chúc Mừng Ngày Nhà Báo Chí Cách Mạng Việt Nam 21/6 Đẹp Nhất

class Customer var id: Intvar name: Stringinit(id: Int, name: String)self.id = idself.name = nameclass Order var customerId: Intvar date: Dateinit(customer: Customer) self.date = Date()self.customerId = customer.idlet khoa = Customer(id: 123, name: "Khoa")let order = Order(customer: khoa)

Khi lưu lại order mới ta cần phải biết customerId.

Buồn buồn, ta biến hóa id sinh hoạt Customer thành kiểu string chứ không phải Int nữa thì Order đang phải thay đổi theo. Ta gọi mối quan hệ này là Dependency

Vẽ thì dùng mũi tên này:

*

Sẵn bonus thêm mẫu hình mũi tên nhằm vẽ UML nè:

*

https://www.codeproject.com/Articles/777540/Association-Aggregation-Composition-Dependency-and

http://www.c-sharpcorner.com/UploadFile/b1df45/dependency-generalization-association-aggregation-compos/


*
Author: Khoa Nguyen
thanhphodong.vn| Telegram| TwitterThất nghiệp. Đang rủ rê nhiều người thất nghiệp.Hy vọng cùng với thanhphodong.vn có thể lan toả ý thức thất nghiệp đến với nhiều người hơn nữa