มันเกี่ยวกับผลข้างเคียง
การถามว่าvar1
รัฐเป็นส่วนหนึ่งของประเด็นนี้หรือไม่ แน่นอนว่าถ้าvar1
ต้องคงอยู่มันจะต้องเป็นตัวอย่าง วิธีใดวิธีหนึ่งสามารถทำงานได้ไม่ว่าจะต้องมีการคงอยู่หรือไม่ก็ตาม
วิธีผลข้างเคียง
ตัวแปรอินสแตนซ์บางตัวใช้เพื่อสื่อสารระหว่างวิธีการส่วนตัวตั้งแต่การโทรถึงโทรศัพท์ ตัวแปรอินสแตนซ์ชนิดนี้สามารถถูก refactored จากการมีอยู่จริง แต่ไม่จำเป็นต้องเป็น บางครั้งสิ่งที่ชัดเจนกับพวกเขา แต่นี่ไม่ใช่ความเสี่ยง
คุณกำลังปล่อยให้ตัวแปรอยู่นอกขอบเขตเนื่องจากมันถูกใช้ในขอบเขตส่วนตัวสองแบบที่แตกต่างกัน ไม่ใช่เพราะมันจำเป็นในขอบเขตที่คุณวางไว้ สิ่งนี้อาจทำให้สับสน "globals คือชั่วร้าย!" ระดับของความสับสน สิ่งนี้สามารถทำงานได้ แต่มันก็ไม่ได้ขนาดที่ดี มันใช้งานได้ในขนาดเล็กเท่านั้น ไม่มีวัตถุขนาดใหญ่ ไม่มีโซ่ที่สืบทอดมานาน อย่าทำให้เกิดผลกระทบโยโย่
วิธีการใช้งาน
ทีนี้แม้ว่าvar1
จะต้องยืนยันว่าไม่มีอะไรบอกว่าคุณต้องใช้ถ้าสำหรับค่าชั่วคราวทุกครั้งที่อาจใช้ก่อนที่จะถึงสถานะที่คุณต้องการเก็บรักษาไว้ระหว่างการโทรสาธารณะ นั่นหมายความว่าคุณยังคงสามารถตั้งค่าvar1
อินสแตนซ์ได้โดยไม่ต้องใช้วิธีใดนอกจากวิธีการทำงานเพิ่มเติม
เป็นส่วนหนึ่งของรัฐหรือไม่คุณยังสามารถใช้วิธีใดวิธีหนึ่ง
ในตัวอย่างเหล่านี้ 'var1' ไม่มีการห่อหุ้มอะไรนอกจาก debugger ของคุณจึงรู้ว่ามันมีอยู่ ฉันเดาว่าคุณทำอย่างนั้นเพราะคุณไม่ต้องการอคติกับเรา โชคดีที่ฉันไม่สนใจสิ่งที่
ความเสี่ยงของผลข้างเคียง
ที่กล่าวว่าฉันรู้ว่าคำถามของคุณมาจากไหน ฉันทำงานภายใต้การรับมรดกที่น่าสังเวชของโยโย่ที่เปลี่ยนแปลงตัวแปรอินสแตนซ์ในหลายระดับในหลายวิธีและหายไปพยายามที่จะติดตามมัน นี่คือความเสี่ยง
นี่คือความเจ็บปวดที่ผลักดันให้ฉันทำงานได้มากกว่าเดิม วิธีการสามารถจัดทำเอกสารอ้างอิงและเอาท์พุทในลายเซ็นของมัน นี่เป็นวิธีที่ทรงพลังและชัดเจน นอกจากนี้ยังช่วยให้คุณเปลี่ยนสิ่งที่คุณผ่านวิธีส่วนตัวทำให้มันสามารถนำมาใช้ซ้ำได้มากขึ้นในชั้นเรียน
ผลข้างเคียงที่กลับหัวกลับหาง
นอกจากนี้ยัง จำกัด ฟังก์ชั่นเพียวไม่มีผลข้างเคียง นั่นอาจเป็นสิ่งที่ดี แต่ก็ไม่ได้มุ่งเน้นวัตถุ ส่วนใหญ่ของการวางแนววัตถุคือความสามารถในการอ้างถึงบริบทนอกวิธีการ การทำเช่นนั้นโดยไม่รั่วไหลไปทั่วนี่ก็หมดไปแล้วความแข็งแกร่งของ OOP ฉันได้รับความยืดหยุ่นของโลก แต่มีอยู่ในชั้นเรียนอย่างดี ฉันสามารถเรียกวิธีหนึ่งและเปลี่ยนแปลงตัวแปรอินสแตนซ์ทุกครั้งในครั้งเดียวถ้าฉันชอบ ถ้าฉันทำอย่างนั้นฉันก็ต้องตั้งชื่ออย่างน้อยให้ชัดเจนว่ามันขึ้นอยู่กับอะไรเพื่อที่คนจะไม่แปลกใจเมื่อมันเกิดขึ้น ความเห็นก็สามารถช่วยได้เช่นกัน บางครั้งความคิดเห็นเหล่านี้เป็นทางการว่า "เงื่อนไขการโพสต์"
ข้อเสียของวิธีการทำงานส่วนตัว
วิธีการทำงานทำให้การอ้างอิงบางอย่างชัดเจน หากคุณไม่มีภาษาที่ใช้งานได้อย่างแท้จริงคุณจะไม่สามารถแยกการพึ่งพาที่ซ่อนอยู่ออกได้ คุณไม่รู้หรอกว่ามองไปที่ลายเซ็นของเมธอดที่ไม่ได้ซ่อนผลข้างเคียงจากคุณไว้ในโค้ดที่เหลือ คุณทำไม่ได้
โพสต์ conditionals
หากคุณและคนอื่น ๆ ในทีมเชื่อถือเอกสารผลข้างเคียง (เงื่อนไขก่อน / โพสต์) ในความคิดเห็นแล้วกำไรที่ได้จากวิธีการทำงานจะน้อยกว่ามาก ใช่ฉันรู้ว่าฝัน
ข้อสรุป
โดยส่วนตัวแล้วฉันมักจะใช้วิธีการส่วนตัวในการทำงานไม่ว่าในกรณีใด แต่ถ้าเป็นไปได้จริง ๆ แล้วส่วนใหญ่เป็นเพราะความคิดเห็นผลข้างเคียงตามเงื่อนไขก่อน / หลังไม่ทำให้เกิดข้อผิดพลาดของคอมไพเลอร์เมื่อพวกเขาล้าสมัย หากฉันไม่ต้องการความยืดหยุ่นของผลข้างเคียงฉันก็แค่อยากรู้ว่าสิ่งต่าง ๆ ใช้ได้ผล