Skip to main content

วัตถุที่ใช้งานคืออะไร?

ในการเขียนโปรแกรมคอมพิวเตอร์และวิศวกรรมวัตถุที่ใช้งานอยู่เป็นรูปแบบการออกแบบประเภทหนึ่งที่สามารถใช้เพื่อช่วยให้แน่ใจว่าบริการบางอย่างมีอยู่เสมอในระบบมัลติเธรดหรือพร้อมกันวัตถุที่ใช้งานอยู่เป็นวัตถุที่ใช้กลไกเพื่อให้สามารถรับและประมวลผลอินพุตจากวัตถุภายนอกโดยไม่ต้องบังคับให้วัตถุภายนอกรอให้การดำเนินการเสร็จสมบูรณ์กลไกนี้ยังช่วยให้วัตถุจำนวนมากที่อาจใช้งานพร้อมกันเพื่อใช้วัตถุที่ใช้งานโดยไม่ต้องมีความเป็นไปได้สำหรับเวลาในการปิดกั้นที่ยาวนานซึ่งกระบวนการที่เกิดขึ้นพร้อมกันจะต้องหยุดและรอการเข้าถึงสิ่งนี้มักจะเกิดขึ้นได้จากการห่อวัตถุที่ใช้งานอยู่ในอินเทอร์เฟซที่เข้าถึงได้สาธารณะเรียกว่าพร็อกซีจากนั้นใช้ระบบคิวประเภทหนึ่งภายในวัตถุเพื่อให้ข้อความถูกเก็บไว้สำหรับการประมวลผลในภายหลังสิ่งนี้จะสร้างรูปแบบการออกแบบที่วัตถุส่งข้อความไปยังวัตถุที่ใช้งานอยู่จากนั้นดำเนินการประมวลผลต่อไปจนกว่าวัตถุที่ใช้งานจะประมวลผลข้อความและต่อมาแจ้งวัตถุการโทรของผลลัพธ์เพื่อให้พวกเขาสามารถอัปเดตสถานะของพวกเขาได้

นอกรูปแบบการออกแบบวัตถุที่ใช้งานอยู่วัตถุปกติอาจเรียกว่าวัตถุพาสซีฟในตัวอย่างโปรแกรมง่าย ๆ วัตถุพาสซีฟอาจทำหน้าที่เป็นรีเลย์เซิร์ฟเวอร์แชทซึ่งวัตถุระยะไกลติดต่อวัตถุพาสซีฟเพื่อส่งข้อความไปยังคนอื่น ๆ บนเซิร์ฟเวอร์เมื่อใดก็ตามที่วัตถุเซิร์ฟเวอร์แบบพาสซีฟได้รับข้อความแชทจากวัตถุระยะไกลจะต้องจัดการคำขอทันทีจากนั้นส่งเอาต์พุตทันทีทั้งหมดในขณะที่วัตถุระยะไกลหยุดการดำเนินการของตัวเองจนกว่ากระบวนการจะเสร็จสิ้นการสร้างเธรดที่แตกต่างกันภายในโปรแกรมสามารถแก้ปัญหาการบล็อกการดำเนินการ แต่จากนั้นเริ่มต้นปัญหาด้วยการซิงโครไนซ์

ในรูปแบบการออกแบบวัตถุที่ใช้งานวัตถุเซิร์ฟเวอร์เดียวกันในตัวอย่างข้างต้นจะทำงานในเธรดของตัวเองแยกจากวัตถุอื่น ๆนอกจากนี้ยังจะถูกห่อหุ้มในอินเทอร์เฟซบางประเภทที่รู้จักกันในชื่อพร็อกซีที่ทำงานในเธรดแยกต่างหากบางครั้งก็เป็นเธรดการดำเนินการโปรแกรมหลักเมื่อวัตถุระยะไกลต้องการให้วัตถุเซิร์ฟเวอร์ส่งข้อความแชทออกไปจะติดต่อวัตถุพร็อกซีส่งผ่านข้อมูลทั้งหมดที่ต้องการจากนั้นกลับสู่สถานะการดำเนินการปกติแทนที่จะรอ

อินเทอร์เฟซพร็อกซีจากนั้นแปลงข้อมูลจากวัตถุระยะไกลลงในข้อความที่ส่งผ่านไปยังคิวสำหรับวัตถุที่ใช้งานอยู่ในการประมวลผลณ จุดนี้ทั้งอินเทอร์เฟซพร็อกซีและวัตถุระยะไกลมีอิสระที่จะดำเนินการต่อและไม่ถูกบล็อกในขณะเดียวกันวัตถุที่ใช้งานจะทำงานเพื่อให้คิวว่างเปล่าประมวลผลข้อความที่เข้ามาแต่ละรายการหากวัตถุที่เรียกใช้ต้องการข้อมูลบางอย่างที่จะส่งคืนโดยวัตถุที่ใช้งานอยู่สามารถใช้โครงสร้างการโทรกลับเพื่อแจ้งวัตถุระยะไกลของการเปลี่ยนแปลงใด ๆ ในสถานะ