มีหลายสิ่งที่จะพูดในการตอบคำถามนี้นี่คือความคิดแรกที่เข้ามาในความคิดของฉัน:
ก่อนอื่นโปรดทราบว่าprivate
เป็นเพียงโครงสร้างเวลาคอมไพล์ - ไม่สามารถบังคับใช้ในรันไทม์ได้ (ดูที่นี่และที่นี่สำหรับการอภิปรายที่เกี่ยวข้อง) ด้วยเหตุนี้โปรดตัดทอนความคิดที่private
ว่าเป็นประโยชน์ในทางใดทางหนึ่งเพื่อความปลอดภัย นั่นไม่ใช่สิ่งที่เกี่ยวกับ
มันเป็นเรื่องเกี่ยวกับการห่อหุ้มและเมื่อคุณมีฟิลด์หรือวิธีการในส่วนประกอบของคุณที่คุณต้องการห่อหุ้มมันทำให้ชัดเจนว่าไม่ควรเข้าถึงจากที่อื่นคุณควรทำให้มันเป็นอย่างนั้นprivate
นั่นคือสิ่งที่private
มีไว้สำหรับ: เป็นการบ่งบอกถึงเจตนาของคุณว่าไม่ควรแตะต้องสิ่งใดก็ตามจากภายนอกชั้นเรียน
เช่นเดียวกันกับpublic
: มันเป็นโครงสร้างคอมไพล์ - เวลาเท่านั้นดังนั้นความจริงที่ว่าสมาชิกคลาสเป็นpublic
ค่าเริ่มต้นในขณะที่จริงมีความหมายเป็นศูนย์ที่รันไทม์ แต่เมื่อคุณมีสมาชิกที่คุณตั้งใจจะเปิดเผยต่อโลกภายนอกอย่างชัดเจนโดยเป็นส่วนหนึ่งของ API ของชั้นเรียนของคุณคุณควรทำให้มันแสดงpublic
ถึงเจตนานี้อย่างชัดเจนนั่นคือสิ่งที่public
มีไว้เพื่อ
ทั้งหมดนี้ใช้ได้กับ typescript โดยทั่วไป โดยเฉพาะใน Angular มีกรณีการใช้งานที่ถูกต้องอย่างแน่นอนสำหรับการมีสมาชิกสาธารณะในคลาสส่วนประกอบตัวอย่างเช่นเมื่อใช้รูปแบบคอนเทนเนอร์ / ส่วนประกอบ (หรือที่เรียกว่าสมาร์ท / ใบ้ ) โดยมีเด็ก "ใบ้" ฉีดพ่อแม่ "ฉลาด" ผ่านการฉีดตัวสร้าง สิ่งสำคัญอย่างยิ่งในการสื่อสารถึงเจตนาของคุณเกี่ยวกับสิ่งที่สมาชิกในผู้ปกครองควรและไม่ควรสัมผัสกับเด็ก ๆ มิฉะนั้นอย่าแปลกใจเมื่อคุณจับเด็กใบ้พวกนั้นมาหลอกอยู่ในตู้เหล้าของพ่อแม่
ดังนั้นคำตอบของฉันสำหรับคำถามของคุณ:
ฉันควรเพิ่มความเป็นส่วนตัวสำหรับทุกคนเช่นด้านล่างนี้หรือไม่
เป็นสำคัญไม่มี คุณไม่ควรเพิ่มเสมอไปprivate
เพราะการทำเช่นนั้นจะทำให้คุณล้มเหลวในจุดประสงค์ของคำหลักเพราะคำหลักนั้นไม่ได้บ่งบอกถึงเจตนาใด ๆ อีกต่อไปหากคุณใส่ไว้ทุกที่: คุณอาจไม่ใส่ไว้ที่ใดก็ได้เช่นกัน