CodeGear  نسخه جدید دلفی با نام Delphi 2007 for win32  رو منتشر کرده در این نسخه بنا به درخواست کاربران تمرکز از روی دات نت به win32  انتقال پیدا کرده و ویژگی ها خوبی به دلفی اضافه شده CodeGear  این تغییرات رو از زمان اخرین تغییر اساسی در کامپایلر دلفی یعنی دلفی 2007 منتشر کرده است با این تغییرات دلفی بیشتر به سمت شی گرایی حرکت کرده و از ویژگی های خوب C++ ,java و C#  در شی گرایی استفاده کرده و مفهموم جدید و جالبی به نام class helper  رو که پیش از این در دلفی دات نت وجود داشت رو به نسخه win32  هم اضافه کرده همچنین IDE  دلفی هم نسبت به نسخه محبوب برنامه نویس های دلفی یعنی دلفی 7 تغییرات چشمگیری کرده که می تواند در برنامه نویسی خیلی کارا باشد

در این مقاله بطور خلاصه امکانات جدید دلفی در زمینه شی گرایی را بررسی می کنیم


اولین امکان جالب که از C++  الهام گرفته شده سربار گذاری عملگر هاست (Operator Overloading)  این امان قبل از این در کلاس های دلفی وجود نداشته ولی شما می توانید به کمک این قابلیت عملگر ها را با کمک تعریف توابع عملگری دوباره تعریف کنید البته بر خلاف C++  برای این تعریف باید از نام عملگر استفاده کنید مثلا برای عملگر جعه باید از نام add  استفاده کنید

قابلیت جدید بعدی تعریف اعضای strict private و strict protected هست اگه با دلفی کار کرده باشید حتما به خاطر دارید که دلفی در زمینه پنهان سازی کلاس های یک ضعف بزرگ داشت و اون این بود که می شد از یک کلاس مشتق شده که با کلاس والد در یک یونیست تعریف شده بود به اعضای Private  دسترسی داشت با تعریف اعضای private به صورت strict  دیگه امکان دسترسی به اونها فقط از خود کلاس وجود داره و کاملا خصوص تعریف می شوند.

امکان جدید دلفی تعریف رکوردهایی است که متد و پروپرتی دارند شاید این کار از ساختار های C++  الهام گرفته شده باشد که در هر صورت تفاوت رکورد و کلاس رو بسیار کم می کند

امکان بعدی که از جاوا الهام گرفته شده کلاس abstract  هست کلاس انتزاعی که هیچ پیدا سازی ندارن البته قبل از این هم به کمک اینترفیس ها میشد این کار رو کرد ولی به کمک کلاس های انتظاعی کار بسیار ساده تر می شود

class sealed  قابلیت جالبی که اجازه می دهد کلاسی تعریف کنیم که سلسله مراتب وراثت را خاتمه بدهد و نتوان از این کلاس کلاس دیگیری مشتق کرد

قابلیت بعدی تعریف اعضای ثابت برای کلاس ها هست که پیش از این کمبودش به شدت در کلاس های دلفی حس می شد

قابلیت بعدی هم تعریف یه نوع داده در درون کلاس هست قابلیت جالبی که باز هم اختلاف های دلفی و C++  را کاهش می دهد

امان شاید بتوان گفت یکی مهم ترین و بهترین قابلیت های دلفی Class Var و Class Property  هستن پیش از این کمبود این قابلیتها به شدت در دلفی محسوس بود و برنامه نویسان دلفی از تکنیکهای خاصی برای پوشش آنها استفاده می کردند ولی با کمک این قابلیتها امکان تعریف اعضای داده ای استاتیک در دلفی امکان پذیر هست و متدهای استاتیک هم همانند قبل موجود هستند

final methods  متد هایی که  امکان override  کزدن ندارن یه بخش جالب از وراثت هستند و آخرین قابلیت شی گرایی که به نظر من بسیار زیباست Class Helper با کمک این قابلیت می شود کلاس های قبلی که نوشته شدن رو ترمیم کرد به این وسیله شما به یک کلاس یک سری متد و پروپرتی اضافه می کنید بدون اینکه کلاس جدیدی تعریف کنید بدون استفاده از وراثت این قابلیت بیشتر بدرد اضافه کردن یه سری ویژگی ها به کلاس های کتابخانه ای VCL  و یا RTL  می خوره که به نظر شما کم هستن و شما بدلیل اینکه یک سری کامپوننت VCL  از این کلاس ها ساخته شدن و شما می خواهید از همون کامپوننت ها استفاده کنید نمی توانید یک کلاس جدید مشتق کنید ولی با کمک این ویژگی می توانید قابلیت های مورد نظر خودتون رو اضافه کنید

برای دیدن نمونه ها کد ها از این قابلیت ها به به سایت رسمی CodeGear  مراجعه کنید
http://dn.codegear.com/article/34324

منبع
http://dn.codegear.com