نماد سایت امپراطوری من

الگوی طراحی Singleton

Design Patterns

الگوی طراحی Singleton یک الگوی طراحی آفرینشی(Creational) است که به شما این امکان را می‌دهد که اطمینان حاصل کنید یک کلاس تنها یک نمونه دارد، در حالی که یک نقطه دسترسی عمومی به این نمونه وجود دارد. یعنی اگر در برنامه بیش از یک نمونه از این کلاس Object بسازید، تمامی آنها یک Object واحد هستند.

[divider]

مشکل

الگوی طراحی Singleton دو مشکل را همزمان حل می کند و اصل مسئولیت منفرد(Single Responsibility) را زیر پا می گذارد:

[divider]

راه‌حل

تمام پیاده سازی های الگوی طراحی Singleton دارای این دو مرحله مشترک هستند:

اگر کد شما به کلاس Singleton دسترسی داشته باشد، می توانید با متد استاتیک Singleton ارتباط بگیرید. بنابراین هر وقت آن متد فراخوانی می شود، همیشه همان شیء تکراری بازگردانده می شود.

[divider]

مثالی از الگوی طراحی Singleton دردنیای واقعی

دولت نمونه ای عالی از الگوی Singleton است. یک کشور می تواند فقط یک دولت رسمی داشته باشد. صرف نظر از هویت شخصی افرادی که دولت را تشکیل می دهند ، عنوان “دولت X” ، یک نقطه دسترسی عمومی است که گروه افراد مسئول را مشخص می کند.

[divider]

ساختار

به دیاگرام زیر دقت کنید. این دیاگرام، نحوه‌ی پیاده‌سازی الگوی singleton را نمایش می‌دهد:

همانطور که در دیاگرام بالا قابل مشاهده است، کلاس Singleton متد استاتیک getInstance را تعریف می کند که نمونه همان کلاس خود را برمی گرداند. همچنین سازنده Singleton باید از کد client مخفی شود. فراخوانی متد getInstance باید تنها راه دریافت شی Singleton باشد.

در این آموزش سعی کردیم تا مفهوم الگوی طراحی Singleton را بیان کنیم و بدانیم که این الگو چه چالشی را برطرف خواهد کرد. برای پیاده‌سازی عملی این الگو، بسته به زبان برنامه‌نویسی مورد نظر، نمونه کد‌هایی وجود دارد که اکنون قادر به درک آنها هستید.

همچنین برای آشنایی با مفاهیم دیگر الگو‌های طراحی، به دسته الگوهای طراحی نرم‌افزار مراجعه کنید.

موفق و پیروز باشید…

خروج از نسخه موبایل