انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: Silvio Dante در 28 فروردین 1397، 10:54 بظ
-
شاید سوالم یکم احمقانه باشه اما تازه دارم شی گرایی کار میکنم و با جاوا هم کار میکنم.
فرض کنید یه همچین کلاسی داریم:
public class myClass {
int number;
}
حالا وقتی میشه توی کلاس اصلی با درست کردن یک شی از این کلاس، و به راحتی با همچین حرکتی:
myObject.number = 5;
مقدارش رو تغییر داد و خیلی راحت هم بهش دسترسی داشت (مثلا برای چاپ کردنش):
System.out.println(myObject.number);
دیگه چه نیازی به توابع Setter و Getter هست؟!
-
چون فرض بر اینه که شما تنها اسم تابعها رو دریافت میکنید و هیچ اطلاعات دیگهای از روند کار اون کلاس ندارید. هر کلاس ممکنه توسط فرد یا گروهی متفاوت طراحی بشه. همزمان میتونه موضوعات دیگهای مطرح بشه مثل اینکه ممکنه نیاز باشه با تغییر این متغیر، متغیر دیگهای هم تغییر بکنه و یا ممکنه شما چندین Thread داشته باشید و برای جلوگیری از Data race و شرایطی خاص، بخواید با هر خوندن یا تغییر، کاری در کنار اون انجام بشه که در اکثر مواقع نیازمند یک تابع مجزا خواهد بود.
البته در پروژههای کوچیک عموما شیگرایی تنها سرعت توسعه و نرمافزار رو بدون اینکه سودی برسونه پایین میاره. یاد گرفتن شیگرایی بسیار خوبه و پیشنهاد میکنم بهش تسلط پیدا بکنید، ولی خیلی خوبه که دقیقا بدونید چرا خوبه و کجا باید ازش استفاده بکنید.
یکی از دلایلی که علاقهای به جاوا ندارم، اجبار کاربر به استفاده از شیگرایی هستش :) و البته این یکی از دلایل محبوبیت جاوا توی جوامع دانشگاهی هست، چون اکثرا برای آموزش شیگرایی سراغ جاوا میرن و دانشجوها به استفاده از همون برای کارهاشون ادامه میدن.
-
ممنونم.