سوال در مورد singleton (حل شد)
سلام دوستان
چطور میشه فهمید که این عملیات درست انجام میشه
<?php
class Singleton
{
private static $instance;
public static function getInstance()
{
if(!empty(self::$instance))
return self::$instance;
else
return self::$instance = new self;
}
}
یعنی از کجا میشه فهمید که از این کلاس فقط یک نمونه ساخته شده
نقل قول: سوال در مورد singleton
برای اطمینان، یک متد private به اسم construct__ ازش ایجاد کنید تا مستقیماً کسی نتونه از روی کلاس شما شئ بسازه و تنها راه دسترسی به شئ، استفاده از متد getInstance باشه که تعریف کردین.
نقل قول: سوال در مورد singleton
نقل قول:
نوشته شده توسط
MMSHFE
برای اطمینان، یک متد private به اسم construct__ ازش ایجاد کنید تا مستقیماً کسی نتونه از روی کلاس شما شئ بسازه و تنها راه دسترسی به شئ، استفاده از متد getInstance باشه که تعریف کردین.
بله این قسمت مشکلی نیست اما ایجاد یک نمونه از کلاس برای این نیست که اون کلاس فقط یکبار در حافظه ذخیره بشه, الان من تست میکنم اما بعد از دریافت هر نمونه به صورت singleton مقدار استفاده شده در حافظه بیشتر میشه البته با memory_get_usage مقدار مصرف شده رو دریافت میکنم.
نقل قول: سوال در مورد singleton
اینو تست کنید:
class Singleton
{
private static $instance = null;
public static function getInstance()
{
if(self::$instance === null) {
self::$instance = new self;
}
return self::$instance;
}
}
نقل قول: سوال در مورد singleton