ในความคิดของฉันตัวแปรอินสแตนซ์มีความจำเป็นเมื่อข้อมูลจะถูกใช้ระหว่างการโทรเท่านั้น
นี่คือตัวอย่าง:
myCircle = myDrawing.drawCircle(center, radius);
ตอนนี้ให้การถ่ายภาพคลาส myDrawing ใช้ 15 ฟังก์ชันตัวช่วยในการสร้างวัตถุ myCircle และแต่ละฟังก์ชันเหล่านั้นจะต้องมีจุดศูนย์กลางและรัศมี ไม่ควรตั้งค่าเป็นตัวแปรอินสแตนซ์ของคลาส myDrawing เพราะพวกเขาจะไม่ต้องการอีกแล้ว
ในทางกลับกันคลาส myCircle จะต้องจัดเก็บทั้งศูนย์และรัศมีเป็นตัวแปรอินสแตนซ์
myCircle.move(newCenter);
myCircle.resize(newRadius);
เพื่อให้ออบเจ็กต์ myCircle รู้ว่ารัศมีและจุดศูนย์กลางคืออะไรเมื่อมีการเรียกใหม่เหล่านี้จำเป็นต้องจัดเก็บเป็นตัวแปรอินสแตนซ์ไม่ใช่แค่ส่งผ่านไปยังฟังก์ชันที่ต้องการเท่านั้น
โดยพื้นฐานแล้วตัวแปรอินสแตนซ์เป็นวิธีการบันทึก "สถานะ" ของวัตถุ หากตัวแปรไม่จำเป็นต้องทราบสถานะของวัตถุก็ไม่ควรเป็นตัวแปรอินสแตนซ์
และสำหรับการทำให้ทุกอย่างเป็นสาธารณะ มันอาจทำให้ชีวิตของคุณง่ายขึ้นในตอนนี้ แต่มันจะกลับมาหลอกหลอนคุณ Pease ไม่