Bu benim “nesne / özne” kargaşası dediğim sorun ve oldukça yaygın.
Cümlelerin genellikle fiillerini hedef nesnesinde yapan bir öznesi vardır .
Şimdi, programlama ile ilgili olarak aslında bir şeyler yapan tek şey bilgisayardır. Ya da neredeyse bir süreç, iplik ya da bir elyaf. Nesneler varsayılan olarak canlandırılmaz. Kendi iş parçacıklarını çalıştırıyorlar, yani gerçekten hiçbir şey yapamıyorlar.
Bu, metotların kendileri üzerinde işlem gördüğü anlamına gelir, onlar eylemi yapanların değil eylemin hedefidir. Bu yüzden onlara “konu” değil “nesne” diyoruz!
File.closeDosyanın kendi kapanmadığını söylerken , dosyayı kapatan güncel çalışan iş parçacığıdır. Söylerseniz Array.sort, geçerli çalışan iş parçacığı diziyi sıralar. Söylerseniz HttpServer.sendRequest, geçerli çalışan iş parçacığı isteği sunucuya gönderir (bunun tersi değil!). Benzer şekilde PunchingBag.punch, şu anki çalışan iplik torbayı delmek anlamına gelir.
Bu Boxer, Threadzımbalanabilmeyi istiyorsanız , o zaman onun alt fonksiyonunda kum torbası gibi şeyleri yapabilmesi için alt sınıf olması gerekir .
Ancak bazen, kum torbasının, her nesnenin kendi dişine sahip olması durumunda, yarış koşullarından kaçınmak ve yöntem çağrıları mesaj geçişi olarak uygulamak isteyebileceğiniz durumlarda, yumruk torbasının kendisini yumrukladığını söylemek mantıklı olur: mesajı göndererek torbayı punchyumruklarsınız; kendisi daha sonra punch successfulmesajı size geri gönderir , ancak bu sadece bir uygulama detayıdır.