nameSpace ها

پرسیده شده
فعالیت 1300 روز پیش
دیده شده 531 بار
0

سلام بر استاد عزیز 

سوالی ک برام پیش اومده اینه ک ضرورت استفاده از nameSpace ها چیه ؟ منظورم اینه ک میتونیم اسم مستعاری ک در use استفاده میشه رو همون اول به اسم کلاس و فایل اضافه کنیم و دیگه نیازی ب nameSpace ها نیست

 

و سوال دیگه ای ک داشتم این بود ک توی یکی از ویدئو ها گفتین ممکنه توی پروژه های شی گرایی 10 کلاس به یک اسم داشته باشیم ، ضرورت اینکار چیه ؟ چون از نظر من باعث سردرگمی خودمون میشه

فایل پیوست

هادی قاسمی
هادی قاسمی

18 مهر 99

3

مورد تایید استاد

حذف شده

سلام و احترام

namespace ها اومدن که ما بتونیم چندین فایل رو حتی با اسامی مشابه استفاده کنیم. خب ما اینجا برگشتیم به سوال شما. ببین دوست عزیز خیلی خیلی احتمالش زیاده که شما کلاس هایی با نام های شبیه به هم داشته باشید، مثلا کجا؟

فرض کنید شما یه کلاس دارید به اسم User توی مدل های (model) خودتون و از یک طرف شما اومدی یک پکیج نصب کردی که بر فرض مثل این پکیج هم از namespace استفاده نکرده، حالا توی اون پکیج هم کلاس‌هایی با نام user وجود داره.

لپ کلام اینکه، یه موقع لازم میشه شما این ۲ - ۳ کلاس رو توی یک فایل استفاده کنی، حالا چه اتفاقی میوفته؟

شما ۲ - ۳ کلاس هم نام دارید که به تداخل خوردن و نرم افزار شما نمیتونه تشخیص بده که دقیقا از کدوم استفاده کنه و شما قطعا با ارور مواجه میشید. 

namespace اینجا میشه چاره‌ی کار، چون شما میتونی انتخاب کنی که کدوم کلاسو میخوای استفاده کنی.

 

در آخر یه مثال دیگه هم بگم.

فکر کن داری روی یه پروژه کار میکنی، این پروژه ۲ نوع کاربر داره با نام های admin - user حالا این دو تا هر کدوم یه کلاس به اسم Project دارن که با اونا پروژه های خودشون رو مدیریت میکنن، حالا فکر کن این دو تا توی یه پوشه باشن و namespace نداشته باشن یا اینکه قراره این دوتا کلاس توی یک پروژه دیگه استفاده بشن. اینجا باعث میشه که تداخل به وجود بیاد.

باز اگه سوالی بود بپرس من در خدمتم

موفق باشی  

فایل پیوست

امیر صالحی

توسط

امیر صالحی

18 مهر 99

حذف شده
ممنون امیر جان از توضیحت . ولی هنوز یه ابهامی توی سوال اولیم دارم اونم اینه که اگر اسم کلاس ها رو از همون اول جوری نام گذاری کنیم ک کمترین درصد تشابه ایجاد کنه چی ؟ بازم امکان یکی شدن داره درسته ؟ مثلا توی مثال دومی ک خودت زدی همون اول اسم کلاس رو بزاریم ProjectUser
هادی قاسمی

18 مهر 99

2

مورد تایید استاد

حذف شده

خواهش میکنم.

ببینید اگه قرار باشه از این قضیه فرار کنیم باعث میشه که یه سری اسمای عجیب غریب برسیم که شاید بعدا هم نتونیم تشخیص بدیم که این کلاس چی بوده و از یه طرف دیگه هم داریم قوانین رو هم میشکونیم که باعث میشه کد ما کثیف و غیر منطقی در بیاد. مثلا توی فریم ورکی مثل لاراول برای نام گذاری namespaceها از قوانین psr-4 استفاده میشه تا لود کردن فایل ها آسون باشه و کلاس ها تفکیک شده باشن.

فایل پیوست

امیر صالحی

توسط

امیر صالحی

18 مهر 99

حذف شده
درسته - نه بحثم فرار کردن نیست میخوام چراییِ استفاده از nameSpace ها رو درک کنم ممنون
هادی قاسمی

18 مهر 99

حذف شده
خواهش میکنم، نبده هم منظوری نداشتم فقط خواستم مثال بزنم ببخشید. وظیفه بود
امیر صالحی

19 مهر 99