วัตถุ: สถานะ พฤติกรรม และอินเทอร์เฟซ
แนะนำใหม่| English | ความหมาย |
|---|---|
| instance/ˈɪnstəns/ | อินสแตนซ์ |
| encapsulation/ɪnˌkæpsjʊˈleɪʃn/ | การห่อหุ้ม |
อะไรจะอธิบายการสังเกตนี้ได้?
- วัตถุจำลองบัญชีธนาคารสองตัวสามารถตอบสนองต่อการฝากเงินที่เหมือนกันได้ ในขณะที่มียอดคงเหลือต่างกัน
- เริ่มต้นด้วยการทำนาย ระบุปริมาณหรือลักษณะที่คุณจะเปรียบเทียบ แล้วตัดสินใจว่าหลักฐานอะไรที่จะแยกแยะคำอธิบายสองแบบได้
สร้างโมเดล
- คลาสกำหนดชนิดที่มีสถานะและพฤติกรรม วัตถุคือ อินสแตนซ์ การห่อหุ้ม (Encapsulation) ควบคุมการเข้าถึงผ่านอินเทอร์เฟซเพื่อให้การดำเนินการรักษา invariant ไว้ได้ การสืบทอด (Inheritance) สร้างความสัมพันธ์ของชนิดที่เหมาะสม ส่วนการประกอบ (Composition) สร้างวัตถุที่ประกอบด้วยหรือใช้อีกวัตถุหนึ่ง
- encapsulation: การควบคุมการเข้าถึงสถานะผ่านอินเทอร์เฟซ; instance: วัตถุเฉพาะของคลาสหนึ่ง
อะไรควรป้องกันการเปลี่ยนแปลงสถานะที่ไม่ถูกต้อง?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
การห่อหุ้ม (Encapsulation) ทำงานเมื่อการเปลี่ยนแปลงสถานะทุกครั้งต้องผ่านฟังก์ชันที่ตรวจสอบความ invariant ก่อนนำไปใช้ ฟิลด์ที่เขียนได้โดยตรงจะข้ามการตรวจสอบไปหมด และผู้ใช้จะ_ERR Eventually ทำผิดพลาด
จับคู่แต่ละคำศัพท์เทคนิคกับความหมายที่แม่นยำ
Difficulty 2/5 · 140 coins + a small bonus on first completion today
ใช้นิยามเพื่อแยกแยะปริมาณและกระบวนการที่เกี่ยวข้อง
เลือกหลักฐานมาทดสอบสมมติฐาน
- การเรียกเมทόδทำงานกับอินสแตนซ์เฉพาะ ตัวแปรสถานะควรเป็นไปตามเงื่อนไขก่อน (preconditions) และเงื่อนไขหลัง (postconditions) Polymorphism ทำให้โค้ดสามารถใช้อินเทอร์เฟซร่วมกันพร้อมกับการนำไปใช้ที่แตกต่างกัน เมื่อสัญญา (contract) ถูกเคารพ
- สร้างโมเดลบัญชีหรือสินค้าคงคลังสังเคราะห์ขนาดเล็ก ทดสอบอินสแตนซ์อิสระสองตัว ปฏิเสธการดำเนินการที่ไม่ถูกต้องและค่าขอบเขต เก็บโมเดลห่างจากบัญชีการเงินจริงและข้อมูลการเข้าสู่ระบบ
นิสัยสองอย่างใดทำให้การตรวจสอบหรือแบบจำลองในกรณีนี้รองรับได้มากขึ้น?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
การระบุเงื่อนไขและสมมติฐานช่วยให้ผู้อื่นทำงานซ้ำได้โดยถูกต้อง และการบันทึกหลักฐานรองรับช่วยให้พวกเขาตรวจสอบข้อสรุปได้ การซ่อนผลลัพธ์ที่ขัดแย้งกันจะกำจัดหลักฐานที่อาจทลายข้อสรุปที่ผิดพลาด และข้อมูลจากตัววัดเพียงหนึ่งค่าไม่สามารถใช้ยืนยันข้ออ้างที่กว้างขวางได้
ทำงานจากปริมาณที่ทราบค่า
- ระบุค่าที่ทราบและหน่วยของมัน เลือกความสัมพันธ์โดยพิจารณาว่าข้อสมมติฐานสอดคล้องกับเคสนี้ แล้วจัดรูปสมการก่อนแทนค่า
- Known: Object A เริ่มต้นที่ 40 หน่วยและได้รับ 15; Object B เริ่มต้นที่ 20 และได้รับ 5. ยอดคงเหลือสุดท้ายคือ 55 และ 25. ผลรวมของทั้งสองคือ 80 แต่ยอดคงเหลือของแต่ละ object ไม่เท่ากับ 80
อินสแตนซ์เริ่มต้นที่ 12 หน่วย เพิ่ม 8 และลบออก 3. หาค่าสุดท้าย用它 ใช้ลำดับเดียวกัน: จำนวน Known → โมเดล → ความสัมพันธ์ → การแทนค่า → หน่วยและการตีความ
instance เริ่มต้นที่ 12 หน่วย เพิ่ม 8 และลบ 3 จงหาค่าสุดท้าย
Difficulty 2/5 · 140 coins + a small bonus on first completion today
ผลลัพธ์คือ 17 หน่วย ทราบแล้ว: เริ่มต้น 12; เพิ่ม 8; ลบ 3 ติดตามสถานะทีละขั้นตอน: 12 + 8 = 20; 20 - 3 = 17 หน่วย การดำเนินการแต่ละตัวเปลี่ยนเฉพาะสถานะของอินสแตนซ์นี้เท่านั้น
ตรวจสอบข้อสรุปและขอบเขต
- คลาสไม่เหมือนอินสแตนซ์ใดอินสแตนซ์หนึ่ง การสืบทอดไม่ได้ดีกว่า composition เสมอ การซ่อนฟิลด์เพียงอย่างเดียวไม่ได้พิสูจน์ว่าทุกการรักษาสถานะที่ถูกต้อง
- กลับไปที่การสังเกตเดิม อธิบายว่าผลลัพธ์นี้สนับสนุนสิ่งใด มีเงื่อนไขใดบ้าง และเป็นอย่างไรในการทดสอบคำอธิบายอื่นที่ขัดแย้งกัน
Instance ของคลาสเดียวกันต้องแบ่งปันค่ายอดคงเหลือเดียวกันเสมอ คำกล่าวนี้ไม่ถูกต้อง: แต่ละ instance เป็นเจ้าของสถานะของตัวเอง: บัญชีสองบัญชีจากคลาสเดียวกันสามารถมียอดคงเหลือต่างกัน ได้ พวกเขาแบ่งปันนิยามของคลาส - การดำเนินการและโครงสร้าง - ไม่ใช่ค่าของฟิลด์
วัตถุ: สถานะ พฤติกรรม และอินเทอร์เฟซ: การเรียกเมท็อดทำงานกับอินสแตนซ์เฉพาะ ตัวแปรสถานะควรเป็นไปตามเงื่อนไขก่อน (preconditions) และเงื่อนไขหลัง (postconditions) Polymorphism ทำให้โค้ดสามารถใช้อินเทอร์เฟซร่วมกันพร้อมกับการนำไปใช้ที่แตกต่างกัน เมื่อสัญญา (contract) ถูกเคารพ
instance ของ class สองตัวต้องแบ่งปันยอดคงเหลือเดียวกันเสมอ
Difficulty 1/5 · 100 coins + a small bonus on first completion today
แต่ละอินสแตนซ์เป็นเจ้าของสถานะของตนเอง: บัญชีสองบัญชีจากคลาสเดียวกันสามารถมียอดคงเหลือต่างกัน พวกเขาแชร์คำนิยามของคลาส - การดำเนินการและโครงสร้าง - ไม่ใช่ค่าของฟิลด์
การควบคุมการเข้าถึงสถานะผ่านอินเทอร์เฟซ: เขียนคำศัพท์เทคนิค
Difficulty 1/5 · 100 coins + a small bonus on first completion today
การห่อหุ้มหมายถึง การควบคุมการเข้าถึงสถานะผ่านอินเทอร์เฟซ