ฉันเพิ่งเริ่มสำรวจ SOLID และฉันไม่แน่ใจว่าการอ่านจากไฟล์และการเขียนไปยังไฟล์เป็นความรับผิดชอบเดียวกันหรือไม่
เป้าหมายเป็นไฟล์ประเภทเดียวกัน ฉันต้องการอ่านและเขียน. pdf ในใบสมัครของฉัน
แอปพลิเคชันอยู่ใน Python หากสร้างความแตกต่าง
ฉันเพิ่งเริ่มสำรวจ SOLID และฉันไม่แน่ใจว่าการอ่านจากไฟล์และการเขียนไปยังไฟล์เป็นความรับผิดชอบเดียวกันหรือไม่
เป้าหมายเป็นไฟล์ประเภทเดียวกัน ฉันต้องการอ่านและเขียน. pdf ในใบสมัครของฉัน
แอปพลิเคชันอยู่ใน Python หากสร้างความแตกต่าง
คำตอบ:
การใช้การอ่านและการเขียนน่าจะมีความเป็นไปได้สูงที่จะมีความเหนียวแน่นสูง ถ้ามีใครจะเปลี่ยนแปลง การติดต่อกันที่สูงเป็นตัวบ่งชี้ที่แข็งแกร่งของความรับผิดชอบเดี่ยวและหลักการความรับผิดชอบเดี่ยวบอกเราว่าพวกเขาควรจะรวมกันในระดับเดียวกัน หากการดำเนินการเหล่านั้นมีการทำงานร่วมกันในระดับต่ำโอกาสที่การแยกนั้นจะช่วยปรับปรุงการบำรุงรักษา
อย่างไรก็ตามหากมีผู้บริโภคที่อ่านข้อมูลโดยไม่ต้องเขียนหรือเขียนโดยไม่ต้องอ่านก็เป็นสิ่งบ่งชี้ว่าจากมุมมองส่วนต่อประสานที่คุณควรแยกการดำเนินการเหล่านี้ตามที่กำหนดโดยหลักการแยกส่วนต่อประสาน ซึ่งหมายความว่าผู้บริโภคควรกำหนดอินเทอร์เฟซสองที่พวกเขาสามารถขึ้นอยู่กับในขณะที่File
คลาสจะใช้อินเทอร์เฟซทั้งสอง
เมื่อคุณใช้หลักการ SOLID ในการออกแบบวัตถุคุณสามารถพิจารณาการอ่านและการเขียนไฟล์เป็นความรับผิดชอบเดียว - ทำงานกับข้อมูลถาวร
อย่างไรก็ตามคุณไม่ควรใส่การอ่านและการเขียนไฟล์ในวิธีการหรือฟังก์ชั่นเดียวกัน
คำตอบอื่น ๆ ส่วนใหญ่ดูเหมือนจะถูกมองข้ามว่าในคำถามของคุณข้อมูลสำคัญชิ้นหนึ่งขาดหายไป - คุณไม่ได้บอกเราว่าเอกสารที่คุณกำลังจะอ่านและเขียนเกี่ยวข้องกันอย่างไรและเกี่ยวข้องกัน!
แอปพลิเคชันของคุณมีบางอย่างเช่น "วัตถุเอกสาร" และเขียนลงในไฟล์ PDF ก่อนแล้วจึงอ่านไฟล์เดิมอีกครั้งลงในวัตถุเอกสารที่คล้ายกันหรือไม่ หรือในทางกลับกันมันจะอ่านไฟล์ PDF เป็นเอกสารทำการแก้ไขบางอย่างและบันทึกเอกสารนั้นเป็นไฟล์ PDF ใหม่อีกครั้ง จากนั้นการอ่านและการเขียนควรถูกมองว่าเป็นความรับผิดชอบเดียว อาจเป็นกรณีที่แอปพลิเคชันของคุณเป็นหรือมีส่วนประกอบเช่น "โปรแกรมแก้ไข PDF" หรือ "เครื่องมือจัดการ PDF"
อย่างไรก็ตามหากส่วนหนึ่งของแอปพลิเคชันของคุณสร้างไฟล์ PDF บางตัวอย่างเช่นในองค์ประกอบการรายงานและส่วนอื่นที่ไม่เกี่ยวข้องของแอปพลิเคชันของคุณจะอ่าน PDF ที่แตกต่างกัน (ตัวอย่างเช่นเครื่องมือประเมินสิ่งที่แนบของเมล PDF หลังนั้นไม่มีอะไรเหมือนกันกับเคสที่ใช้ครั้งแรกดังนั้นงานเหล่านั้นจึงเป็นความรับผิดชอบที่แตกต่างกัน
โดยเฉพาะอย่างยิ่งสำหรับ PDF กรณีการใช้งานครั้งที่สองเป็นกรณีที่ฉันได้เห็นบ่อยขึ้นในแอปพลิเคชันประเภทต่างๆ มีไลบรารี / ส่วนประกอบอื่น ๆ อีกมากมายซึ่งสนับสนุนการสร้าง PDF และมีจำนวนน้อยกว่ามากที่รองรับการอ่าน PDF หากคุณกำลังจะใช้ห้องสมุดหนึ่งแห่งเพื่อสร้างไฟล์ PDF และห้องสมุดที่แตกต่างไปจากเดิมอย่างสิ้นเชิงเพื่ออ่าน PDF คุณควรจะเห็นว่าการอ่านและการเขียน PDF นั้นเป็นความรับผิดชอบแยกต่างหาก
ตาม ( โรเบิร์ตซี. มาร์ติน ) ความรับผิดชอบคือชุดของหน้าที่ที่รับใช้นักแสดงคนหนึ่ง
นักแสดงควรเป็นแหล่งที่มาของการเปลี่ยนแปลงความรับผิดชอบที่กำหนด (ควรมีเหตุผลเพียงข้อเดียวเท่านั้นที่จะเปลี่ยนแปลง)
ในกรณีของคุณคุณควรกำหนดนักแสดงเป็นขั้นตอนแรกแล้วถามคำถาม: มีนักแสดงที่สนใจโดยการอ่านไฟล์และอื่น ๆ โดยการเขียนหรือไม่?
หากเป็นกรณีนั้นการอ่านและการเขียนไฟล์เป็นความรับผิดชอบแยกกันสองประการ เพราะจะมีการเปลี่ยนแปลงหลายแหล่ง (นักแสดงหลายคนอาจขอเปลี่ยนตรรกะการอ่านและสิ่งเดียวกันสำหรับการเขียน)