ฉันมีฐานสองชั้นOperationและTrigger. แต่ละคนมีจำนวนคลาสย่อยที่เชี่ยวชาญในการดำเนินการหรือทริกเกอร์บางประเภท สามารถเรียกเฉพาะTrigger OperationขณะสามารถเรียกโดยเฉพาะเจาะจงOperationTrigger
ฉันต้องเขียนโค้ดที่แม็พOperationกับที่ได้รับTrigger(หรือกลับกัน) แต่ฉันไม่แน่ใจว่าจะใส่ไว้ที่ไหน
ในกรณีนี้รหัสไม่ได้เป็นของชั้นหนึ่งหรือชั้นอื่น ๆ อย่างชัดเจน ดังนั้นในแง่ของหลักการความรับผิดชอบเดี่ยวฉันไม่แน่ใจว่าควรจะใช้รหัสใด
ฉันเห็นตัวเลือกสามตัวที่ใช้งานได้ทั้งหมด ในขณะที่ 1 & 2 ดูเหมือนจะเป็นทางเลือกของซีแมนทิกส์ แต่ 3 หมายถึงแนวทางที่แตกต่างอย่างสิ้นเชิง
bool Triggers(Operation o)ทริกเกอร์เช่นbool TriggeredBy(Trigger t)วิธีการใช้งานเช่นbool MappingExists(Trigger t, Operation o)ในระดับใหม่ทั้งหมดซึ่งจัดการการทำแผนที่เช่น
ฉันจะตัดสินใจได้อย่างไรว่าจะวางรหัสการแมปที่ใช้ร่วมกันอย่างไรในหลักการความรับผิดชอบเดียว
วิธีการจัดการความรับผิดชอบเดียวเมื่อมีการแบ่งปันความรับผิดชอบ?
แก้ไข 1
ดังนั้นรหัสจริงจะเป็นแบบนี้ คุณสมบัติทั้งหมดที่มีอย่างใดอย่างหนึ่งstring, Guid, หรือcollection<string> enumโดยพื้นฐานแล้วพวกเขาเป็นเพียงตัวแทนของข้อมูลขนาดเล็ก
แก้ไข 2
สาเหตุของการส่งคืนชนิดบูล ชั้นอื่นจะไปกินคอลเลกชันของและคอลเลกชันของTrigger Operationมันต้องการที่จะทราบว่าการทำแผนที่ที่มีอยู่ระหว่างและTrigger Operationมันจะใช้ข้อมูลนั้นเพื่อสร้างรายงาน
