کامپوننت چگونه کار می کند؟
وقتی کامپوننت نویسی می کنید، با محدودیت های کمی روبرو خواهید شد. در صورتیکه بخواهید کامپوننتتان را ساده و قابل اعتماد بسازید ، باید از قواعد مسلمی تبعیت کنید تا مردم از آن استفاده کنند.
این بخش در مورد فلسفه اساسی طراحی کامپوننت ها بحث می کند که شامل موارد زیر است:
- از بین بردن وابستگی ها
- خصوصیات ، رویداد ها و متد ها
- کپسوله سازی گرافیک ها
- ثبت
از بین بردن وابستگی ها
شاید مهمترین فلسفه ایجاد کامپوننت های دلفی ، ضرورت از بین بردن وابستگی ها باشد. یکی از چیز هایی که باعث می شود کاربران کامپوننت ها ، بسادگی آنها را با برنامه های خود ترکیب کنند ، این واقعیت است که مایلند به طور کلی هیچ محدودیتی در آنچه انجام می دهند در هیچ جای کد آنها وجود نداشته باشد.
ماهیت بسیاری از کامپوننت ها نشان می دهد که کاربران مختلف مایلند آنها را با برنامه خود در محیط ها ، ترتیب ها و ترکیب های گوناگون استفاده کنند . شما باید کامپوننت های خود را طوری طراحی کنید که بدون هیچ پیش شرطی و در هر زمینه ای عملکرد مناسبی داشته باشند.
یک نمونه از حذف وابستگی ها
یک نمونه عالی برای از بین بردن وابستگی ها در کامپوننت ها ، خصوصیت Handle از کنترل های پنجره ای است. اگر قبل از این برنامه های ویندوزی می نوشتید ، می دانستید که یکی از مشکل ترین و مستعد ترین جنبه های بروز خطا این بود که باید مطمئن می شدید که پنجره یا کنترل برنامه در حال اجرا تا قبل از اینکه آن را با تابع CreateWindow ایجاد کنید ، به آن دسترسی ندارد. فراخوانی توابع با Handle های نادرست سبب بروز چندین خطا می شد.
کامپوننت های دلفی ، این نگرانی کاربران را که آیا همیشه Handle های معتبر را گرفته اند یا خیر ، برطرف کرده است. برای این منظور با استفاده از یک خصوصیت برای Handle یک پنجره، کامپوننت می تواند بررسی کند که آیا پنجره ایجاد شده است یا خیرو در نتیجه آیا پنجره دارای یک Handle معتبر است یا خیر؟ اگر Handle معتبرنباشد ، خصوصیت مورد نظر ، پنجره را ایجاد کرده و Handle آن را باز می گرداند. بدین ترتیب هر وقت کد کاربر به خصوصیتHandle دسترسی یابد ، مطمئن است که Handle معتبر را گرفته است.
با حذف وظایف پشت صحنه مانند ایجاد پنجره ، کامپوننت ها به توسعه دهندگان اجازه می دهند که روی آنچه دقیقا می خواهند فوکوس کنند. اگر یک توسعه دهنده بخواهد Handle یک پنجره را به یک تابع API پاس دهد، دیگر نیازی به بررسی وجود Handle معتبر ندارد یا اینکه لازم نیست آن را برای پنجره ایجاد کند. با روش برنامه نویسی مبتنی بر کامپوننت ،بجای اینکه برنامه نویس مدام نگران بررسی اشتباه های ممکن باشد ، با این فرض که همه چیز درست کار خواهد کرد می تواند کد نویسی کند.
هر چند بطور کلی ممکن است ساخت کامپوننت هایی که وابستگی نداشته باشند کمی بیشتر طول بکشد ، اما صرف این زمان نتیجه بهتری خواهد داشت. این موضوع ، از آنجاییکه لازم نیست توضیحات و هشدار های متعدد و یا راه حل های مشکلات احتمالی کاربران را ارائه دهید ، نه تنها کاربران کامپوننت شما را از اجرای چندین باره همان وظایف محافظت می کند ، بلکه بار پشتیبانی و تهیه مستندات آن را نیز کاهش می دهد.
علاقه مندي ها (Bookmarks)