You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mức độ gắn kết ở đây được hiểu là phạm vi mà module có thể bao quát, tập trung được.
Để đo mức độ gắn kết ta có "Lack of Cohesion in Methods - (LCOM)" . Được tính dựa theo tỉ lệ giữa: tổng số biến instance và số biến instance được các methods sử dụng.
Cùng lấy ví dụ về "mức độ gắn kết cao" và "mức độ gắn kết thấp".
Mỗi method của class đều sử dụng toàn bộ các thuộc tính của class.
ApplicationService với mức độ gắn kết thấp
Với ví du về UserApplication ở các phần trước, ta thấy chỉ có register method là sử dụng cả userRepository và userService còn delete method thì chỉ sử dụng userRepository vậy nên theo quan điểm về mức độ gắn kết thì cách viết này cho mức độ gắn kết thấp. Ta có thể tách thành 2 class UserRegisterService và UserDeleteService
Do tách class nên để tập hợp chúng lại, ta cần sử dụng package
VD:
Application.User.UserRegisterService
Application.User.UserDeleteService
Khi mọi xử lí liên quan đến user đều có thể được tìm thấy trong folder User thì sẽ rất dễ dàng cho dev sau này.
The text was updated successfully, but these errors were encountered:
Mức độ gắn kết ở đây được hiểu là phạm vi mà module có thể bao quát, tập trung được.
Để đo mức độ gắn kết ta có "Lack of Cohesion in Methods - (LCOM)" . Được tính dựa theo tỉ lệ giữa: tổng số biến instance và số biến instance được các methods sử dụng.
Cùng lấy ví dụ về "mức độ gắn kết cao" và "mức độ gắn kết thấp".
Ở class
LowCohesion
thì methodA chỉ sử dụngv1
,v2
chứ không sử dụngv3
,v4
. Điều tương tự cũng xảy ra vớimethodB
.Nếu tách thành 2 class như sau:
Mỗi method của class đều sử dụng toàn bộ các thuộc tính của class.
ApplicationService với mức độ gắn kết thấp
Với ví du về
UserApplication
ở các phần trước, ta thấy chỉ córegister
method là sử dụng cảuserRepository
vàuserService
còndelete
method thì chỉ sử dụnguserRepository
vậy nên theo quan điểm về mức độ gắn kết thì cách viết này cho mức độ gắn kết thấp. Ta có thể tách thành 2 classUserRegisterService
vàUserDeleteService
Do tách class nên để tập hợp chúng lại, ta cần sử dụng
package
VD:
Khi mọi xử lí liên quan đến user đều có thể được tìm thấy trong folder
User
thì sẽ rất dễ dàng cho dev sau này.The text was updated successfully, but these errors were encountered: