همانطور که می دانید تمام برنامه ها از دو عنصر اصلی تشکیل می شوند : عبارت نامه (کد ) و داده ها ، کد بخشی از برنامه است کد عملیات را اجرا می کند و داده ها اطلاعاتی ایت که توسط این عملیات تحت تاثیر قرار گرفته .
کپسوله سازی یک مکانیزم برنامه نویسی است که کد و داده ها را با هم در یک جا قرار داده و هر دو را از استفاده نادرست و تداخل خارجی ایمن نگه می دارد.
در یک زبان شی گرا ، کد و داده ممکن ایت با هم در چنین روش محدود شوند که یک جعبه سیاه خود ظرف را ایجاد می کند . درون تمام داده های مورد نیازوکد است. هنگامی که در این روش کد و داده ها با هم پیوند برقرار می کنند یک شی به وجود می آید . به عبارت دیگر یک شی ابزاری است که از کپسوله سازی پشتیبانی می کند.
درون یک شی (کد وداده ها) یا هر دو ممکن است برای آن شی محلی (خصوصی Private) یا عمومی ( public) باشند . کد یا داده های محلی فقط توسط بخش دیگری از شی شناخته شده و قابل دست یابی هستند.
به همین دلیل کد یا داده محلی برای قطعه ای از برنامه که خارج از شی است قابل دسترس داشته باشند حتی اگر درون شی تعریف شده باشند بخش های عمومی یک شی برای ارائه یک ارتباط کنترل شده با عناصر محلی شی مورد استفاده قرار می گیرند .
چند ریختی
چند ریختی کمیتی ایت که به یک رابط امکان می دهد تا برای یک کلاس عمومی از عملیات مورد استفاده قرا می گیرد. عمل خاص توسط دات حقیقی شی تعیین می شود. به عنوان مثال یک پشته را در نظر بگیرید .ممکن است برنامه ای داشته باشید که نیاز به سه نوع مختلف پشته داشته باشید یک پشته برای مقادیر صحیح ، یک پشته برای اعداد اعشاری و یک پشته برای کاراکتر ها مورد استفاده قرار می گیرد . در این صورت الگوریتمی که هر سه پشته را پیاده می کند یکسان است حتی اگر داده هایی که در آنها دخیره می شود متفاوت باشند . در یک زبان غیر شی گرا نیاز خواهید داشت تا سه نوع مختلف از روال های پشته را ایجاد کرده .به هر کدام نام متفاوتی قرار داده و برای هر کدام از روابط خاص خودش استفاده کنید . به دلیل وجود چند ریختی در ++C می توانید یک مجموعه روتل عمومی از پشته ایجاد کرده و آن را برای هر سه نوع بکاررببرید.
به طور کلی مفهوم چند ریختی اغلب توسط عبارت یک رابط چندین روشی بیان می شود . این بدین معنی که امکان طراحی یک رابط عمومی برای گروهی از عملیات مرتبط وجود دارد .
چند ریختی با اعمال رابط یکسانی که برای تعیین یک کلاس عمومی مورد استفاده قرار می گیرد . به کاهش پیچیدگی کمک می کند . این است وظیفه کامپایلر تا فعالیت خاصی (مثل متد ) را برای اعمال روی آن انتخاب کند . شما به عنوان برنامه نویس نیاز ندارید تا این انتخاب را انجام دهید شما فقط نیار دارید روابط عمومی را به خاطر سپرده و استفاده کنید. زبان های برنامه نوسی شی گرای اولیه چون به صورت مفسری بودند از چند ریختی در زمان اجرا پشتیبانی می کردند . ولی چون ++C کامپایلر است پس هم در زمان اجرا و هم در زمان کامپایل از چند ریختی پشتیبانی می کند.
ما را در سایت LIST ها در سی شارپ : دنبال میکنید
برچسب: نویسنده: بازدید: 140