22
รูปแบบการออกแบบสำหรับ Undo Engine
ฉันกำลังเขียนเครื่องมือสร้างแบบจำลองโครงสร้างสำหรับแอปพลิเคชันวิศวกรรมโยธา ฉันมีคลาสโมเดลขนาดใหญ่หนึ่งคลาสที่แสดงถึงสิ่งปลูกสร้างทั้งหมดซึ่งรวมถึงคอลเลกชันของโหนดองค์ประกอบของเส้นการโหลด ฯลฯ ซึ่งเป็นคลาสที่กำหนดเองด้วย ฉันได้เขียนโค้ดโปรแกรมเลิกทำแล้วซึ่งจะบันทึกสำเนาลึกหลังจากการแก้ไขแต่ละครั้งในโมเดล ตอนนี้ฉันเริ่มคิดว่าฉันจะเขียนโค้ดให้ต่างออกไปได้ไหม แทนที่จะบันทึกสำเนาลึกฉันอาจบันทึกรายการของการดำเนินการของตัวปรับแต่งแต่ละรายการด้วยตัวปรับย้อนกลับที่เกี่ยวข้อง เพื่อให้ฉันสามารถใช้ตัวปรับย้อนกลับกับโมเดลปัจจุบันเพื่อเลิกทำหรือตัวปรับแต่งเพื่อทำซ้ำ ฉันนึกภาพออกว่าคุณจะใช้คำสั่งง่ายๆที่เปลี่ยนคุณสมบัติของวัตถุได้อย่างไร ฯลฯ แต่คำสั่งที่ซับซ้อนล่ะ เช่นเดียวกับการแทรกอ็อบเจ็กต์โหนดใหม่ลงในโมเดลและการเพิ่มอ็อบเจกต์บรรทัดที่คอยอ้างอิงไปยังโหนดใหม่ เราจะดำเนินการได้อย่างไร?
117
design-patterns
undo