الگوی حالت

دانشنامه عمومی

الگوی حالت (طراحی نرم افزار). الگوی طراحی حالت یک الگوی رفتاری در طراحی نرم افزار بوده که به یک شی این اجازه را میدهد تا رفتار خود را با هنگام تغییر یافتن حالت داخلی اش تغییر دهد. این الگو، طراحی مشابهی با ماشین حالات متناهی دارد. این الگوی طراحی را می توان به نوعی یک الگوی استراتژی دانست که قادر است استراتژی خود بوسیله صدا زدن توابع مختلف که در اینترفیس ( واسط ) آن تعریف شدند، تغییر دهد.
الگوی حالت در برنامه‍نویسی برای کپسوله سازی رفتارهای مختلف یک شی، بر اساس حالت داخلی آن بکار می رود. این می تواند روش تمیزتری برای تغییر رفتار اشیا در هنگام ران تایم برنامه، بدون استفاده از دستوارت شرطی باشد که در نتیجه می تواند قابلیت نگهداری اپلیکیشن را را بهبود دهد.
الگوی حالت یکی از بیست و سه الگوی طراحی ثبت شده توسط گروه چهار نفره بوده که به حل مسائلی که مکرر رخ می دهند کمک می کند. چنین مسائلی مربوط به طراحی انعطاف پذیر و قابل استفاده مجدد نرم افزارهای شی گرا می شوند. چنین شی هایی به سادگی پیاده سازی شده و قابل تغییر، تست و استفاده مجدد هستند.
الگوی حالت دو مسئله اصلی را حل می کند:
·       یک شی باید رفتار خود را هنگامی که حالت داخلی اش تغییر می کند، تغییر دهد.
·       رفتارهای وابسته به حالت باید به طور مستقل تعریف شوند. این یعنی اضافه کردن حالت های جدید نباید رفتار حالت های کنونی را تغییر دهد. .
پیاده سازی رفتارهای وابسته به حالت بطور مستقیم داخل یک کلاس انعطاف پذیری کمی دارد چون باعث می شود آن کلاس محدود به یک رفتار خاص باشد و اضافه کردن حالت جدید یا تغییر رفتار در آینده بدون اعمال تغییرات برروی کلاس غیرممکن خواهد شد. این الگو برای این مسئله دو راه حل دارد:
·       شی هایی جدا ( به عنوان state ) تعریف شوند که رفتارهای وابسته به حالت را برای هر حالت کپسوله سازی کنند. این یعنی یک واسط ( interface ) برای رفتارهای وابسته به حالت تعریف شود و سپس کلاس هایی برای پیاده سازی واسط در هر حالت تعریف شوند.
·       یک کلاس بجای پیاده سازی مستقیم، رفتارهای وابسته به حالت را به یکی از اشیا حالت واگذاری می کند.
این باعث می شود یک کلاس بطور مستقل از پیاده سازی رفتارهای وابسته به حالت عمل کند. حالت های جدید با تعریف کردن کلاس های حالت جدید ساخته می شوند و یک کلاس می تواند با تغییر شی حالت کنونی خود در زمان اجرا رفتار خود را تغییر دهد.
عکس الگوی حالت (طراحی نرم افزار)
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس