با نام خدا و سلام،
هنگام ساخت یک پروژه داخل اندروید استادیو بعد از Application Name که نام اپلیکیشن هست فیلد ورودی دیگری دارد با نام Company Name، اما این فیلد چی هست و بهتره که چی داخلش بنویسیم؟
با توجه به برنامه نویسان زیاد جاوا در سرتاسر جهان که برای نوشتن Class و interface از زبان جاوا استفاده می کنند، خیلی احتمال داره که از نام های مشابهی برای انواع مختلفی از کلاس ها و واسط ها استفاده نمایند. برای مثال اگر ما یک کلاس به نام recrtangle در پکیج java.awt داشته باشیم که واقعا یک چهار ضلعی بسازه، کامپایلر در صورتی به ما اجازه میده که از یک class دیگه با نام rectangle استفاده کنیم که نام پکیج اون با java.awt فرق داشته باشه، مثلا کلاس rectangle از پکیج graphics.
پس نام کامل پذیرفته شده برای کلاس rectangle از پکیج گرافیک میشه : graphics.rectangle و
نام کامل پذیرفته شده برای کلاس rectangle از پکیج java.awt میشه : java.awt.rectangle
این کار به خوبی پیش میره مگر اینکه دو برنامه نویس مستقل نام مشابهی برای پکیج های خود استفاده کنند. حال چه چیزی مانع این مشکل میشه؟؟ قرارداد.
قراردادهای نامگذاری:
نام های پکیج ها برای اینکه ناسازگاری با نام های کلاس ها و interface ها نداشته باشند همگی به حروف کوچک (lowercase) نوشته می شوند.
شرکت ها از دامین های اینترنت رزرو شده ی خودشون برای شروع نام پکیج هایشان استفاده می کنند – برای مثال – com.example.mypackage برای پکیجی با نام mypackage است که توسط برنامه نویسی در example.com ساحته شده است.
تضادهای اسامی (Name Collisions) که در یک شرکت رخ میدهد نیاز به وضع قوانینی توسط خود اون شرکت دارد، ممکنه با شامل کردن ناحیه (Region) یا نام پروژه پس از اسم کمپانی این مسئله رو حل کنند – به عنوان مثال – com.example.region.mypackage
پکیج ها در زبان جاوا خودشان با java. یا javax شروع می شوند.
در بعضی موارد، اسم دامین اینترنتی یه اسم مناسب برای پکیج نمی باشد. این زمانی رخ می دهد که اسم دامین شامل یک خط فاصله (hyphen) یا دیگر کاراکترهای خاص باشد، اگر نام پیکیج با عدد یا هر کاراکتر غیر مجاز دیگری که نباید در ابتدای نام جاوا استفاده شوند شروع شود، یا اسم پکیج شامل kewword های رزرو شده ی جاوا باشد مانند “int”. در این حالت قرارداد پیشنهاد شده اضافه کردن underline می باشد. برای مثال:
Domain Name | Package Name Prefix |
---|---|
hyphenated-name.example.org |
org.example.hyphenated_name |
example.int |
int_.example |
123name.example.com |
com.example._123name |
ارسال پاسخ