Từ trang c2wiki về khớp nối & sự gắn kết :
Sự gắn kết (phụ thuộc lẫn nhau trong mô-đun) tên sức mạnh / cấp độ: (từ xấu hơn đến tốt hơn, độ gắn kết cao là tốt)
- Sự gắn kết trùng hợp: (tệ nhất) Các yếu tố mô-đun không liên quan
- Sự gắn kết logic: Các phần tử thực hiện các hoạt động tương tự như được chọn từ mô-đun bên ngoài, tức là bằng một cờ chọn thao tác để thực hiện (xem thêm CommandObject). tức là phần thân của hàm là một if-other / switch trên cờ hoạt động
- Sự gắn kết tạm thời: các hoạt động chỉ liên quan đến thời gian chung được thực hiện (nghĩa là khởi tạo () hoặc FatalErrorShutdown? ())
- Sự gắn kết theo thủ tục: Các yếu tố liên quan đến các hoạt động khác nhau nhưng tuần tự, mỗi yếu tố trên các dữ liệu khác nhau (thường có thể được chia thành nhiều mô đun theo các ranh giới chuỗi tuyến tính)
- Sự gắn kết giao tiếp: các hoạt động không liên quan ngoại trừ cần cùng một dữ liệu hoặc đầu vào
- Sự gắn kết tuần tự: các hoạt động trên cùng một dữ liệu theo thứ tự quan trọng; đầu ra từ một chức năng là đầu vào tiếp theo (đường ống)
- Sự gắn kết thông tin: một mô-đun thực hiện một số hành động, mỗi hành động có điểm vào riêng, với mã độc lập cho từng hành động, tất cả được thực hiện trên cùng một cấu trúc dữ liệu. Về cơ bản là việc thực hiện một kiểu dữ liệu trừu tượng. tức là xác định cấu trúc của sales_region_table và các toán tử của nó: init_table (), update_table (), print_table ()
- Sự gắn kết chức năng: tất cả các yếu tố đóng góp vào một tác vụ được xác định rõ ràng, tức là một hàm thực hiện chính xác một thao tác get_engine_tem Nhiệt độ (), add_sales_tax ()
(nhấn mạnh của tôi).
Tôi không hiểu đầy đủ định nghĩa về sự gắn kết hợp lý. Câu hỏi của tôi là:
- sự gắn kết logic là gì?
- Tại sao nó lại có được một bản rap tệ như vậy (loại gắn kết tồi tệ thứ 2)?