Aggregation
ClassA có dùng lớp và giữa ClassB nhưng không cho lớp khác truy xuất ClassB thông qua ClassA. Trong Objective C ta dùng thuộc tính là weak để thể hiện mối quan hệ này, code ví dụ như sau:
Ngoài ra ta còn có sơ đồ Aggregation - Navigability:
Theo sơ đồ này thì ta dùng property để lớp khác có thể truy xuất ClassB thông qua ClassA.
Code ví dụ trong Objective C như:
Unit Test giả sử ta huỷ đối tượng ClassB thì ClassA sẽ không gọi hàm trong ClassB được, do đó trong sơ đồ này nên dùng if để kiểm tra đối tượng khi truyền vào để tránh bị crash ứng dụng:Code ví dụ trong Objective C như:
Code ví dụ trong Swift như sau:
Composition
Composition giống như Aggregation nhưng giữ đối tượng theo kiểu strong, thì sẽ không phụ thuộc vào đối tượng truyền vào.
Giống code ở trên nhưng ta thay weak thành strong thì sẽ thể hiện mối quan hệ này, ví dụ như sau:
Cũng viết UnitTest như trên nhưng kết quả khi huỷ object tham chiếu thì đối tượng đó vẫn được giữ lại để thực hiện phương thức:
Code ví dụ trong Swift như sau:
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.