کلياتي راجع به کلاس ها
---------------------------
براي ساخت کامپوننت مي بايد از تسلط متوسطي روي شي گرايي برخوردار باشيد. به اين معني که چندريختي رو درک کنيد، براندازي متدها رو بلد باشيد، در مورد گرفتن و پس دادن حافظه دانشتون کافي باشه، کار با Property ها و ساخت اون ها رو بلد باشيد (تا حد آرايه اي) و يه کوچولو هم مسيج ها رو بشناسيد.

در حالت کلي ساخت کامپوننت جز در چند جا با ساخت کلاس تفاوت چنداني نداره.
نکاتي که به نظرم مي رسه براي ساخت کامپوننت در مورد کلاس ها بگم اينهاست:

- در مورد کجا گذاشتن Property ها مطمئن باشيد. هميشه اونها رو در Public يا Published نگذاريد. ممکنه شرايطي پيش بياد (باور کنيد درست کردنش خيلي سخت مي شه) که وجود دو تا پراپرتي در قسمت Pulished کامپوننتتون رو به حالت هنگ مي بره. فقط چيزهايي رو که واقعا لازم داريد در اين قسمت بگذاريد.

- در مورد Private کردن متغير هاتون مطمئن بشيد تا وقتي از روي اين کلاس يک زير کلاس مي گيريد دچار اشکال نشيد.

- براي تمام کارهاي تکراري که انجام مي ديد حتما متد هايي در نظر بگيريد. اين طوري براي اصلاح اون کار نيازي نداريد تمام کلاس رو شخم بزنيد.

- در مورد رفرش کردن کامپوننت و نحوه و تعداد اون، چه در مود نمايشي چه براي رفرش داده مطمئن بشيد. تعداد و چگونگي و زمان رفرش کردن ها بسيار اهميت داره و مي تونه کامپوننت يا کلاس شما رو بي مصرف کنه.

- تا حد امکان از اشياي جديد و پرهزينه يا آرايه هاي باز و دايناميک در کلاس هاتون استفاده نکنيد. فقط در مواقع خيلي خيلي ضروري از اشاره گرها يا ليست هاي پيوندي استفاده کنيد.

- اشياي بکار رفته در کلاستون رو تا حد امکان خودتون آزاد کنيد.

- از نام گذاري هاي عجيب يا تکراري که با خود سيستم تداخل دارند اجتناب کنيد.

- معمولا انواعي که لازم داريد در سيستم وجود دارند. قبل از ايحاد انواع مختلف يه سرچي در سورس دلفي انجام بديد.

- از ايجاد کلاس هاي واسطه اصلا نترسيد و اگر لازم بود کلاسي که مي خواهيد ايجاد کنيد رو به چند زير کلاس اشتقاقي تقسيم کنيد. معمولا يکي مونده به آخرين کلاس مد نظر شما همراه با نام Custom هست و اکثر خصوصياتش Protected هستند که در کلاس نهاييتون اونها رو افزايش Visibility مي ديد.

- قبل از ابجاد کامپوننت يا کلاس جديد، خوب فکر کنيد که نزديکترين کلاس به کلاس مد نظر شما چيه و يک کم در مورد سورس اون مطلب بخونيد.

- متد هايي که مسئول رفتار کامپوننتتون هستند رو Virtual در نظر بگيريد تا در هنگام لزوم در کلاس هاي فرزند اون ها رو براندازي کنيد.

- براي همه ي متغيرهاي استفاده شده در کلاستون مقادير پيش فرض در نظر بگيريد. حتي اگر مطمئن باشيد که سيستم خودش پيش فرض مطلوب رو در نظر مي گيره. اگر لازم هست مقادير پيش فرض رو از کاربر در متد سازنده دريافت کنيد يا متد سازنده رو OverLoad کنيد.