ภาษา (all?) ส่วนใหญ่ที่มีเนมสเปซมักจะเป็นวัตถุ หลายครั้งที่ชื่อที่มนุษย์สามารถอ่านได้สำหรับประเภทนั้นมีความเหมาะสมแม้ว่าจะมีการใช้งานที่เข้ากันไม่ได้หลายอย่างก็ตาม (สิ่งนี้จะทำให้เกิดปัญหาอื่น ๆ เกี่ยวกับการใช้งานเชิงวัตถุอีกครั้ง แต่นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ) ตัวอย่างเช่นใน Java คุณมีตัวจับเวลาที่ใช้สำหรับงาน UI พื้นหลังและตัวจับเวลาที่ใช้สำหรับงานแอปพลิเคชันพื้นหลัง (ไม่เชื่อมโยงกับ AWT / Swing) เนมสเปซช่วยให้คุณมีวัตถุที่มีชื่อเหมือนกันเหล่านี้อาศัยอยู่ใน sub-APIs ที่แตกต่างกัน
เหตุผลที่เนมสเปซเข้ามาเกี่ยวข้องกับงานที่ไม่สมเหตุสมผลในการคาดการณ์ว่านักพัฒนาคนอื่นจะตั้งชื่อวัตถุของพวกเขาอย่างไร C ++ แนะนำแนวคิด (หรืออย่างน้อยก็เป็นภาษาแรกที่ฉันสัมผัสกับแนวคิด) และมันก็มีประโยชน์แม้ว่าจะไม่มีแนวทางในการใช้งานที่ดีที่สุดก็ตาม Java ปรับแนวคิดและเพิ่ม "แนวปฏิบัติที่ดีที่สุด" บางอย่างที่มีชื่อ บริษัท ของคุณในเนมสเปซ ด้วยวิธีนี้คุณเพียงแค่ต้องกังวลเกี่ยวกับ บริษัท ของคุณเอง
คำนำหน้าอาจกลายเป็นความยุ่งเหยิง คุณจะใช้มันเมื่อใด เมื่อใดที่คุณไม่ใช้ โครงสร้าง / คลาส / เมธอดโกลบอลมีส่วนนำหน้าหรือไม่? วิธีการเกี่ยวกับอะไร? เกี่ยวกับคุณสมบัติในโครงสร้าง ฉันได้เห็นสิ่งต่าง ๆ เหล่านี้ในรหัสถึงแม้ว่าจะไม่ได้ขอบคุณในครั้งเดียว Namespaces จัดเตรียมความสามารถในการคาดเดาได้สำหรับคำถามเหล่านี้ทั้งหมดและทำให้เป็นคุณสมบัติทางภาษาแทนที่จะเป็นแบบฝึกหัดที่ดีที่สุด
using
เป็นเนมสเปซเฉพาะและไม่ต้องใส่คำนำหน้าที่จุดเริ่มต้นของตัวระบุในเนมสเปซนั้น