PDA

View Full Version : Namespace چی



mehdi_522
دوشنبه 02 دی 1387, 16:31 عصر
اقا کسی میدونه namespace چی

salehbagheri
دوشنبه 02 دی 1387, 16:54 عصر
در لغت به معناي فضاي نام هست! ولي كارش، دسته بندي كلاسها، توابع و ... است!

مثلا شما ميخواهيد يك خط بكشيد! مي دانيد كه اين كار جزء طراحي يا نقاشي است: بنابراين بايد به فضاي نام Drawing از زير مجموعه System مراجعه كنيد!
كه در اينجا وجود فضاي نام Drawing كار را براي شما آسوده تر كرده است!

Chabok
دوشنبه 02 دی 1387, 22:43 عصر
در ادامه سخنان دوست گرامی salehbagheri :
در سایر زبان های قدیمی همه توابع و متدها و کُلاً چیزهایی که احتیاج داشتید همه بصورت یکجا در دسترس شما قرار داشتند . و برای اینکه نام آن ها با یکدیگر قاطی نشه بعضاً از اسم های طولانی تشکیل شده بودند .

مثلا در Php خودمون همه توابع به این صورت در دسترس هستند :
http://barnamenevis.org/forum/attachment.php?attachmentid=26736
همان طور که می بینید توابعی که مربوط به mysql هستند قبل آن ها نام _mysql درج شده است .

ولی در دات نت این مشکل به کمک فضانام ها حل شد و کلاس ها و توابع دسته بندی شدند .
مثلا اگر قبلا مجبور بودید بنویسید mysql_fetch_array الان می نویسید mysql.fetch_array :لبخند:

امیدوارم خوب توضیح داده باشم .
موفق باشید . خدانگهدار

sepehr.net
دوشنبه 02 دی 1387, 23:24 عصر
سلام
کار NameSpace دسته بندی کردن کلاس ها است به این صورت که هر NameSpace ایی یک قفسه برای دسته بندی کردن کلاس هاست.
این NameSpace ها چند تا مزیت دارند که به انها اشاره میکنم
1 - اگه به دنبال کلاس خاصی باشیم خیلی سریع تر میتونیم اون رو پیدا کنیم به این صورت که بر اساس نوع و کار تابع تشخیص میدیم که در کدام NameSpace ها قرار داره و با محدود کردن جستجو در ان NameSpace میتونیم خیلی سریع تر به مقصد برسیم
2 - مشکل تکراری شدن نام کلاس ها بر طرف میشود. شما فرض کنید اگر NameSpace وجود نداشت ممکن بود دو یا چند کلاس همنام وجود داشته باشند و این باعث به وجود امدن مشکل میشد و برای برطرف کردن اون مجبور بودند که نام کلاس ها را طولانی تر کنندو با وجود NameSpace مشکل طولانی تر شدن نام کلاس ها هم برطرف شده است.

NameSpace Name
{
Class name
{

}
}