PDA

View Full Version : سوال: سوال در مورد singleton (حل شد)



foreach
یک شنبه 15 دی 1392, 20:12 عصر
سلام دوستان
چطور میشه فهمید که این عملیات درست انجام میشه


<?php
class Singleton
{
private static $instance;

public static function getInstance()
{
if(!empty(self::$instance))
return self::$instance;
else
return self::$instance = new self;
}
}

یعنی از کجا میشه فهمید که از این کلاس فقط یک نمونه ساخته شده

MMSHFE
یک شنبه 15 دی 1392, 20:33 عصر
برای اطمینان، یک متد private به اسم construct__ ازش ایجاد کنید تا مستقیماً کسی نتونه از روی کلاس شما شئ بسازه و تنها راه دسترسی به شئ، استفاده از متد getInstance باشه که تعریف کردین.

foreach
یک شنبه 15 دی 1392, 20:44 عصر
برای اطمینان، یک متد private به اسم construct__ ازش ایجاد کنید تا مستقیماً کسی نتونه از روی کلاس شما شئ بسازه و تنها راه دسترسی به شئ، استفاده از متد getInstance باشه که تعریف کردین.
بله این قسمت مشکلی نیست اما ایجاد یک نمونه از کلاس برای این نیست که اون کلاس فقط یکبار در حافظه ذخیره بشه, الان من تست میکنم اما بعد از دریافت هر نمونه به صورت singleton مقدار استفاده شده در حافظه بیشتر میشه البته با memory_get_usage مقدار مصرف شده رو دریافت میکنم.

MMSHFE
یک شنبه 15 دی 1392, 20:47 عصر
اینو تست کنید:


class Singleton
{
private static $instance = null;

public static function getInstance()
{
if(self::$instance === null) {
self::$instance = new self;
}
return self::$instance;
}
}

foreach
یک شنبه 15 دی 1392, 20:53 عصر
خیلی خیلی تشکر حل شد