ความสามัคคีกับที่เก็บข้อมูล

ฉันยังใหม่กับ Unity IoC (โดยทั่วไป DI) และได้อ่านเอกสารจำนวนมากและดูวิดีโอยาวหลายชั่วโมงทางช่อง 9 แม้หลังจากนั้นทั้งหมด ฉันไม่พบตัวอย่างใด ๆ ที่แสดงให้เห็นถึงคุณลักษณะที่ตั้งอยู่ใน กำลังมองหา.

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

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

อีกสิ่งหนึ่งที่แอป (แอปงาน) รองรับคือการใช้งาน ITask หลายอย่าง ดังนั้นฉันจึงมี BasicTask, GTDTask, GoogleTask ดังนั้นฉันจึงคิดว่าจะต้องมีวิธีพื้นที่เก็บข้อมูลที่สามารถจัดการกับการใช้งานแต่ละครั้ง และจัดเก็บการใช้งานไว้ในบริการคลาวด์ที่ถูกต้อง ฉันจะบรรลุสิ่งที่เป็นนามธรรมนี้ด้วย Unity ได้อย่างไร เป็นการดีที่สุดหรือไม่ที่จะลงทะเบียนประเภท ITask ทั้งหมด และให้พื้นที่เก็บข้อมูลเชิงนามธรรมพิจารณาว่าประเภทใดเป็นของพื้นที่เก็บข้อมูลใดตามบริการที่ผู้ใช้ลงชื่อเข้าใช้

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

ขอบคุณสำหรับความช่วยเหลือใด ๆ

โจนาธาน


person Johnathon Sullinger    schedule 22.06.2014    source แหล่งที่มา


คำตอบ (1)


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

person Adrian Booth    schedule 22.06.2014
comment
โดยคอนโทรลเลอร์ฉันคิดว่าคุณกำลังอ้างอิงถึง mvc? ฉันใช้ mvvm และ WPF นั่นสร้างความแตกต่างหรือไม่? - person Johnathon Sullinger; 22.06.2014
comment
ไม่มี mvvm ได้รับประโยชน์อย่างมากจากคอนโทรลเลอร์ การใช้งาน mvvm ที่ดีที่สุดที่ฉันพบคือ model =› วัตถุทางธุรกิจ คอนโทรลเลอร์เติมโมเดลมุมมองด้วยคำสั่งและค่าเริ่มต้น ฯลฯ View model เป็นเพียงสิ่งที่ ui ต้องการดังนั้นการรวบรวมข้อมูลและคำสั่งสำหรับปุ่ม ไม่จำเป็นต้องใช้คอนโทรลเลอร์ แต่ช่วยให้โค้ดนำกลับมาใช้ใหม่ได้ ฉันคิดว่าจะมีหลายมุมมองที่คุณเห็นวัตถุเดียวกัน การมีคอนโทรลเลอร์ที่ให้คำสั่งเดียวกันกับแต่ละอันจะช่วยลดความพยายามในการทดสอบและการเขียนโค้ด - person Adrian Booth; 22.06.2014
comment
คุณเป็นคลาสคอนโทรลเลอร์จะสร้างคำสั่งมอบหมายโดยส่งวัตถุงาน เช่น รายการอัปเดตบนคอนโทรลเลอร์ และวิธีการที่กำหนดว่าคำสั่งทำงานเมื่อใด - person Adrian Booth; 22.06.2014
comment
ยังไม่แน่ใจครับ ติดตามครับ ขออภัย มุมมองถูกผูกไว้กับโมเดลมุมมอง VM มีการอ้างอิงถึงวัตถุคอนโทรลเลอร์หรือไม่ - person Johnathon Sullinger; 22.06.2014
comment
ไม่ ฉันจะอ้างอิง VM จากคอนโทรลเลอร์ สร้างอินสแตนซ์ VM ที่ต้องการจากคอนโทรลเลอร์ที่ส่งรายการที่จำเป็นในตัวสร้าง - person Adrian Booth; 22.06.2014
comment
แต่นั่นใช้ได้กับ Prism ซึ่งจัดการการเดินสาย VM ด้วย View ที่ตรงกันใช่ไหม - person Johnathon Sullinger; 22.06.2014