นี่เป็นสิ่งเดียวกันกับ 'ViewModel' จากรูปแบบการออกแบบ Model-View-ViewModel (MVVM)
Nope
นั่นจะเป็นสิ่งนี้ :
ที่มีรอบ ลุงบ๊อบได้รับการอย่างระมัดระวังหลีกเลี่ยงวงจร
แต่คุณมีสิ่งนี้:
ซึ่งแน่นอนไม่มีรอบ แต่มันทำให้คุณสงสัยว่ามุมมองรู้เกี่ยวกับการปรับปรุงอย่างไร เราจะไปที่นั้นสักครู่
หรือมันเป็น Data Transfer Object (DTO) ง่าย ๆ ?
วิธีอ้าง Bob จากหน้าก่อนหน้า:
คุณสามารถใช้ structs พื้นฐานหรือวัตถุการถ่ายโอนข้อมูลง่าย ๆ หากคุณต้องการ หรือคุณสามารถบรรจุลงใน hashmap หรือสร้างลงในวัตถุ
สถาปัตยกรรมที่สะอาด p207
ดังนั้นแน่นอนถ้าคุณชอบ
แต่ผมขอสงสัยว่าจริงๆ bugging คุณนี้ :
การใช้ UML ในทางที่น่ารักนี้ตรงกันข้ามกับทิศทางของการพึ่งพาซอร์สโค้ดกับทิศทางการไหลของการควบคุม นี่คือคำตอบสำหรับคำถามของคุณ
ในความสัมพันธ์ที่ใช้:
การไหลของการควบคุมไปในทิศทางเดียวกันกับการพึ่งพาโค้ดต้นฉบับ
ในความสัมพันธ์ที่นำไปใช้งาน:
การไหลของการควบคุมมักจะไปในทิศทางตรงกันข้ามกับการพึ่งพารหัสที่มาไม่
ซึ่งหมายความว่าคุณกำลังดูสิ่งนี้จริงๆ:
คุณควรเห็นว่าการควบคุมไม่เคยได้รับจากผู้นำเสนอไปที่มุมมอง
นั่นเป็นอย่างไร มันหมายความว่าอะไร?
หมายความว่ามุมมองมีเธรดของตัวเอง (ซึ่งไม่ใช่สิ่งที่ผิดปกติ) หรือ (ตามที่ @Euphoric points out) การไหลของการควบคุมกำลังเข้ามาในมุมมองจากสิ่งอื่นที่ไม่ใช่ภาพที่นี่
หากเป็นเธรดเดียวกันมุมมองจะรู้ว่าเมื่อใด View-Model พร้อมที่จะอ่าน แต่ถ้าเป็นเช่นนั้นและมุมมองเป็น GUI ก็จะมีเวลาในการทาสีหน้าจอใหม่เมื่อผู้ใช้เลื่อนไปมาระหว่างที่รอ DB
หากมุมมองมีเธรดของตนเองก็จะมีการควบคุมการไหลของตัวเอง นั่นหมายถึงการใช้งานมุมมองนี้จะต้องสำรวจความคิดเห็นของแบบจำลองเพื่อสังเกตการเปลี่ยนแปลง
เนื่องจากผู้นำเสนอไม่ทราบว่ามีมุมมองอยู่และมุมมองไม่ทราบว่ามีผู้นำเสนออยู่จึงไม่สามารถโทรหากันได้ พวกเขาไม่สามารถเหวี่ยงเหตุการณ์ซึ่งกันและกัน สิ่งที่สามารถเกิดขึ้นได้คือผู้นำเสนอจะเขียนไปที่ View-Model และ View จะอ่าน View-Model เมื่อใดก็ตามที่รู้สึกเช่นนั้น
จากแผนภาพนี้มีเพียงสิ่งเดียวที่ View และ Presenter share คือความรู้เกี่ยวกับ View-Model และมันก็เป็นเพียงโครงสร้างข้อมูล ดังนั้นอย่าคาดหวังว่ามันจะมีพฤติกรรมใด ๆ
อาจดูเป็นไปไม่ได้ แต่สามารถทำงานได้แม้ว่า View-Model นั้นซับซ้อน ฟิลด์ที่อัปเดตเล็ก ๆ น้อย ๆ คือมุมมองทั้งหมดจะต้องสำรวจเพื่อตรวจสอบการเปลี่ยนแปลง
ตอนนี้แน่นอนคุณสามารถยืนยันในการใช้รูปแบบการสังเกตการณ์หรือมีบางสิ่งที่กรอบการทำงานซ่อนปัญหานี้จากคุณ แต่โปรดเข้าใจว่าคุณไม่จำเป็นต้อง
นี่เป็นเรื่องสนุกที่ฉันได้อธิบายการควบคุม:
โปรดทราบว่าเมื่อใดก็ตามที่คุณเห็นการไหลไปตามทิศทางที่ฉันกำหนดไว้ก่อนสิ่งที่คุณเห็นคือการโทรกลับ เคล็ดลับนั้นจะไม่ช่วยให้เราไปดู ถ้าเราไม่กลับไปที่สิ่งที่เรียกว่าตัวควบคุมก่อน หรือคุณสามารถเปลี่ยนการออกแบบเพื่อให้คุณได้รับมุมมอง นอกจากนี้ยังแก้ไขสิ่งที่ดูเหมือนว่าจุดเริ่มต้นของปัญหาโยโย่กับ Data Access และส่วนต่อประสาน
สิ่งเดียวที่จะเรียนรู้ที่นี่นอกจากนั้นก็คือ Use Case Interactor สามารถเรียกสิ่งต่าง ๆ ตามลำดับที่มันต้องการตราบใดที่มันยังเรียกพรีเซนเตอร์ได้