Friday, December 11, 2015

[UML Class relationships] Phân biệt quan hệ Association, Dependency và Navigability trong Objective C

Association

Miêu tả 1 kết nối đơn giản giữa 2 lớp với nhau. Tuỳ theo từng trường hợp có cách thể hiện sơ đồ khác nhau.

Mối quan hệ bình thường:


Theo sơ đồ này thì ClassA có sử dụng ClassB hoặc ngược lại, nhưng không giữ đối tượng đó. Code ví dụ trong objective C như sau:

Dependency:

Thể hiện mối quan hệ phụ thuộc yếu giữa lớp này với lớp kia qua mũi tên và số thành phần thể hiện. Vì thế lớp này không cần phải giữ thực thể của lớp kia. Có thể truyền thông qua tham số hoặc tự khởi tạo trong chính lớp sử dụng.
Theo sơ đồ này thì ClassA có sử dụng ClassB, nhưng không giữ đối tượng đó. Code ví dụ trong objective C như sau:


Navigability:

Thể hiện mối quan hệ phụ thuộc mạnh giữa lớp này với lớp kia qua mũi tên và số thành phần thể hiện. Vì thế lớp này phải giữ thực thể của lớp kia chỉ được get chứ không cho set (readonly).

Mối quan hệ Association - Navigability (0..1):

Theo sơ đồ này thì ClassA có sử dụng ClassB, và giữ đối tượng đó để có thể truy xuất bằng property. Nhưng ClassB không biết sự tồn hoặc không chứa ClassA. Code ví dụ đối tượng này và demo trong objective C như sau:

Mối quan hệ Association - Navigability (0..n):

Theo sơ đồ này thì ClassA chứa danh sách ClassB. Code ví dụ như sau:

Kết luận đường gạch giữa Dependency và Navigability:

- Những đường gạch liền thể hiện mối quan hệ mạnh và giữ đối tượng kia.
- Những đường gạch đứt quãng thể hiện mối quan hệ yếu và không giữ đối tượng kia.

Tài liệu tham khảo:

  1. BeginnersBook
  2. Vaughnvernon
  3. Modernanalyst

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.