หลีกเลี่ยงความหมายสองเท่า
คุณเลือกคำที่มีความหมายมากกว่าหนึ่งอย่างโดยเจตนาและการตัดสินใจครั้งแรกคือปัญหา มีคำมากมายที่เป็นปัญหาสำหรับโปรแกรมเมอร์ อีกตัวอย่างหนึ่งก็phone
คือ คุณสามารถphone
ใครบางคนหรือคุณอาจมีphone
ในกระเป๋าของคุณ
ใช้ Getters และ Setters
การตั้งชื่อมาตรฐานสำหรับวัตถุส่วนใหญ่เป็นวิธีการ getters / การตั้งค่าสำหรับคุณสมบัติ
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
คุณสมบัติคือสถานะไม่ใช่คำนาม
ฉันคิดว่าคุณเข้าใจผิดโดยการจำแนกคุณสมบัติของวัตถุเป็นคำนามและตัวแปรอาจเป็นสถานะของรัฐ พวกเขาเป็นรัฐที่เกี่ยวข้องกับขอบเขตการดำรงอยู่ของพวกเขา
คุณสามารถอธิบายค่าที่พวกเขาถือเป็นคำนาม แต่ฉันไม่แน่ใจว่าเป็นจริงในทุกกรณี
ในคุณสมบัติวัตถุคำศัพท์ OOP อธิบายถึงสถานะของวัตถุนั้น ในกรณีของคุณBattery
คือวัตถุและCharge
เป็นสถานะ นั่นจะเป็นคุณสมบัติของวัตถุ แต่ขึ้นอยู่กับบริบทของการใช้งาน
หากคุณต้องการCharge
แบตเตอรี่และรู้ว่าปัจจุบันCharge
มีอะไรแสดงว่าคุณมีปัญหา
ใช้ขอบเขตเพื่อบังคับใช้บริบท
บริบทคือสิ่งที่จะอธิบายความหมายของคำที่คุณต้องการใช้วิธีหรือคุณสมบัติในการถ่ายทอด ขอบเขตคือการตั้งค่าการเข้าถึงของคุณสมบัติ / วิธีการจากนอกวัตถุ
Batter._charge // a hidden private property
Battery.setCharge(value) // would set the private property
Battery.getCharge() // would get the private property
Battery.Charge() // would perform the Charge action
วิธีการมีคำกริยา
คุณสามารถอธิบายวิธีการของวัตถุเป็นคำกริยาได้ แต่การกระทำของคำนั้นเหมาะสมกว่า ในคำศัพท์ของ OOP คุณต้องดำเนินการกับวัตถุโดยใช้วิธี มันเป็นรูปแบบที่ไม่ดีในการแก้ไขคุณสมบัติของวัตถุจากนอกวัตถุ มันต้องการที่จะเรียกวิธีการที่ดำเนินการตามที่จำเป็นซึ่งทำให้สถานะมันเปลี่ยนไป
คำCharge
นี้เป็นคำกริยา แต่ก็เป็นคำนามด้วย Battery.Charge(....)
เมื่อใช้ในการเรียกวิธีการของการกระทำที่มันจะกลายเป็นที่ชัดเจนว่าคำกริยาจะถูกใช้
แต่บริบทมีความสำคัญมาก ขณะที่คำว่าเป็นคำกริยาก็ไม่เป็นความหมายเป็นCharge()
startCharging()
วิธีการที่ถูกต้องสำหรับBattery
อาจรวมถึงCharging
, Discharging
, setCharge
, getCharge
, hasCharge
, และDischarge
Charged
วิธีการหนึ่งคำที่เรียบง่ายมักจะไม่ได้ระบุการกระทำของพวกเขาไว้อย่างชัดเจน แต่มีบางกรณีที่ชอบopen
และต้องการการclose
อธิบายเล็กน้อย
ดังนั้นจึงไม่มีคำตอบที่ถูกต้องเกี่ยวกับวิธีตั้งชื่อคุณสมบัติ / วิธีการเหล่านี้ ยกเว้นว่าคุณต้องใช้เทคนิคข้างต้นอย่างชาญฉลาดเพื่อให้แน่ใจว่าไม่มีความสับสน