คำจำกัดความ: วัตถุหนึ่งควรรักษาความเข้าใจอย่างน้อยที่สุดของวัตถุอื่น ๆ
ต้นกำเนิดของปัญหา: ยิ่งความสัมพันธ์ระหว่างชั้นเรียนใกล้ชิดยิ่งขึ้นเท่าไหร่ระดับการมีเพศสัมพันธ์ก็จะยิ่งมากขึ้นและเมื่อมีการเปลี่ยนแปลงชั้นหนึ่งก็จะยิ่งส่งผลกระทบต่อชั้นเรียนอื่นมากขึ้นเท่านั้น
วิธีแก้ปัญหา: ลดการมีเพศสัมพันธ์ระหว่างคลาส
ตั้งแต่เราเริ่มเรียนรู้การเขียนโปรแกรมเราได้รู้จักหลักการทั่วไปของการเขียนโปรแกรมซอฟต์แวร์: การมีเพศสัมพันธ์ต่ำการทำงานร่วมกันสูง ไม่ว่าจะเป็นการเขียนโปรแกรมที่มุ่งเน้นกระบวนการหรือเชิงวัตถุอัตราการใช้ซ้ำของรหัสสามารถปรับปรุงได้โดยการรักษาข้อต่อระหว่างแต่ละโมดูลให้ต่ำที่สุดเท่าที่จะทำได้ ข้อดีของการมีเพศสัมพันธ์ต่ำนั้นชัดเจนในตัวเอง แต่คุณจะโปรแกรมเพื่อให้ได้การมีเพศสัมพันธ์ต่ำได้อย่างไร? นั่นคือสิ่งที่กฎของ Dimit จะสำเร็จ
กฎหมาย dimitter หรือที่รู้จักกันในชื่อหลักการของความรู้น้อยที่สุดได้รับการเสนอครั้งแรกในปี 1987 โดย Ian Holland แห่ง Northeastern University ในสหรัฐอเมริกา ในแง่ของ Layman ยิ่งคุณรู้น้อยเกี่ยวกับชั้นเรียนที่ขึ้นอยู่กับดีกว่า กล่าวอีกนัยหนึ่งสำหรับคลาสที่ขึ้นอยู่กับไม่ว่าตรรกะจะซับซ้อนแค่ไหนลองห่อหุ้มตรรกะภายในชั้นเรียนและอย่ารั่วไหลข้อมูลใด ๆ ไปยังภายนอกยกเว้นวิธีการสาธารณะที่ให้ไว้ กฎ Dimit ยังมีคำจำกัดความที่ง่ายกว่า: สื่อสารกับเพื่อนโดยตรงเท่านั้น ก่อนอื่นมาอธิบายว่าเพื่อนโดยตรงคืออะไร: แต่ละวัตถุจะมีความสัมพันธ์คู่กับวัตถุอื่น ๆ ตราบใดที่มีความสัมพันธ์ระหว่างกันระหว่างวัตถุทั้งสองเราจะบอกว่าวัตถุทั้งสองนี้เป็นความสัมพันธ์ของเพื่อน มีหลายวิธีในการจับคู่เช่นการพึ่งพาการเชื่อมโยงการรวมกันการรวม ฯลฯ ในหมู่พวกเขาเราเรียกชั้นเรียนในตัวแปรสมาชิกพารามิเตอร์วิธีการและค่าการส่งคืนวิธีการที่ปรากฏเป็นเพื่อนโดยตรงในขณะที่ชั้นเรียนในตัวแปรท้องถิ่นไม่ใช่เพื่อนโดยตรง กล่าวอีกนัยหนึ่งมันเป็นการดีที่สุดที่จะไม่ปรากฏในชั้นเรียนเป็นตัวแปรท้องถิ่น
นี่คือตัวอย่างของการละเมิดหลักการ Dimit:
ครูชั้นเรียนสาธารณะ {ครูโมฆะสาธารณะ (ชั้นเรียนคลาส) {classes.getStudents.getScore.show (); -
ปัญหาคืออะไร? การมีเพศสัมพันธ์สูงเกินไป
1. ชั้นเรียนคะแนนอาจถูกยกเลิกในชั้นเรียนนักเรียน
2. วิธีการแสดงของคลาสคะแนนอาจถูกลบ
ชั้นเรียนนักเรียนและชั้นเรียนคะแนนนั้นไม่คุ้นเคยกับคุณและคุณอาจไม่รู้ว่าเมื่อใดที่พวกเขาเปลี่ยน
เราสามารถปรับเปลี่ยนเป็น:
ครูชั้นเรียนสาธารณะ {ครูโมฆะสาธารณะ (ชั้นเรียน) {classes.showscore (); }} ชั้นเรียนสาธารณะ {โมฆะสาธารณะ showscore (นักเรียนนักเรียน) {student.showscore (); }} นักเรียนชั้นเรียนสาธารณะ {คะแนนคะแนน; โมฆะสาธารณะ showscore () {คะแนน = คะแนนใหม่ (80); score.show (); -
สรุป:
1. ข้อได้เปรียบของกฎหมายของ Dimit คือการลดการมีเพศสัมพันธ์ระหว่างชั้นเรียน
2. ข้อเสียคือมันจะสร้างวิธีการเล็ก ๆ น้อย ๆ ทำให้ระบบยุ่งเหยิงมากขึ้นและประสิทธิภาพการสื่อสารจะลดลง
3. แอปพลิเคชันในโหมดการออกแบบ: โหมดซุ้ม (โหมดซุ้ม) และโหมดสื่อกลาง (โหมดสื่อกลาง)