نیاز به توضیح نیست که Singleton Pattern مشکلگشای بسیاری از مشکلات شما در حین کدنویسی است؛ درواقع، زمانی که شما مطمئن باشید که فقط و فقط یک آبجکت از روی کلاس مدنظرتان نیاز خواهید داشت، میبایست از این الگو استفاده کنید اما این در حالی است که این تضمین باید وجود داشته باشد تا قبل از آنکه آن آبجکت مورد استفاده قرار گیرد، اصطلاحاً Initialize شده باشد.
اما تجربه نشان داده است که این نوع دیزاین پترن (الگوی طراحی) بیش از آنکه مفید واقع گردد، باعث دردسر خواهد شد چراکه توسعهٔ کد در آینده را دچار مشکل میکند!
یکی از دلایلی که دولوپرها به سمت استفاده از این الگوی طراحی میروند این است که در ابتدا فکر میکنند که مثلاً به کلاس X در کل پروژه صرفاً یک بار نیاز خواهند داشت اما این در حالی است که معمولاً پروژههای بزرگ نرمافزاری در طول زمان دستخوش تغییرات بسیاری شده و به مرور زمان نیازها دچار تغییر و تحول میگردند و چنانچه دولوپری بیش از حد روی این الگو حساب کرده باشد، ممکن است در آینده با مشکلات عدیدهای مواجه گردد.
نکتهٔ دیگری که در ارتباط با الگوی طراحی سینگلتون وجود دارد این است که این الگو دیپندنسیهایی (Dependency یا وابستگی) میان ماژولهای مختلف پروژهٔ شما به صورت انتزاعی ایجاد میکند و همین مسأله مشکلزا خواهد شد چرا که از یک سو این وابستگیها خیلی بهوضوح قابل مشاهده نیستند و از سوی دیگر بخشهای مختلف سورسکد را به یکدیگر وابسته میسازند و همین مسأله منجر به این خواهد گشت که در آینده بهسادگی نتوانیم از سورسکد خود در سایر پروژهها استفاده کنیم.
چنین وابستگیهایی همچنین منجر به این خواهند شد که تست کردن نرمافزار با Unit Test که نیازمند وابستگی حداقلی مابین اجزای مختلف سورسکد است هم با مشکل مواجه شود.