Đây là vấn đề mà tôi gọi là sự nhầm lẫn "đối tượng / chủ đề" và nó khá phổ biến.
Các câu nói chung có một chủ ngữ thực hiện động từ trên đối tượng đích của chúng .
Bây giờ liên quan đến lập trình, điều duy nhất thực sự làm mọi thứ là máy tính. Hoặc hầu như một quá trình, chủ đề hoặc một sợi. Các đối tượng không được animate theo mặc định. Họ không có chủ đề riêng của họ đang chạy để họ thực sự không thể làm gì.
Điều này có nghĩa là các phương thức hoạt động trên chúng, chúng là mục tiêu của hành động chứ không phải ai thực hiện hành động đó. Đó là lý do tại sao chúng tôi gọi chúng là "đối tượng" chứ không phải "đối tượng"!
Khi bạn nói File.closeđó không phải là tệp tự đóng, thì luồng đang chạy sẽ đóng tệp. Nếu bạn nói Array.sort, luồng đang chạy sắp xếp mảng. Nếu bạn nói HttpServer.sendRequest, luồng đang chạy hiện tại sẽ gửi yêu cầu đến máy chủ (không phải ngược lại!). Nói tương tự PunchingBag.punchcó nghĩa là các chủ đề chạy hiện tại đấm túi.
Điều này có nghĩa là nếu bạn muốn Boxercó khả năng đấm, thì nó phải là một lớp con của Threadnó để nó có thể làm những việc như đấm túi trong chức năng luồng của nó.
Tuy nhiên, đôi khi cũng có ý nghĩa khi nói đấm túi tự đấm trong trường hợp mỗi đối tượng có luồng riêng, bạn có thể muốn tránh điều kiện cuộc đua và thực hiện các cuộc gọi phương thức khi gửi tin nhắn: bạn đấm túi bằng cách gửi punchtin nhắn, đó là cú đấm sau đó chính nó sẽ gửi lại cho bạn punch successfultin nhắn, nhưng đó chỉ là một chi tiết thực hiện.