hadi
hadi
خواندن ۲ دقیقه·۴ سال پیش

الگوی طراحی Singleton و روش پیاده سازی در php

الگوی طراحی Singleton چیست؟

گاهی اوقات ما نیاز داریم که فقط یک شی از یک کلاس ایجاد بشه و اجازه ساخت شی جدیدی داده نشه, که در اینگونه موارد از اگوی طراحی Singleton استفاده میکنیم.




نحوه ی طراحی

فرض کنید میخواهیم یک شی از کلاس Request ایجاد کنیم که در هنگام ورود کاربر به سایت آی پی و مرورگر کاربر را نگه میدارد.

برای این که از کلاس Request فقط اجازه ساختن یک شی داشته باشیم, در ابتدا متد __construct را private میکنیم تا اجازه ساختن شی بیرون از کلاس وجود نداشته باشد حال یک متغیر استاتیک به اسم instance تعریف میکنیم و مقدار آن را null قرار میدهیم و یک متد استاتیک ایجاد میکنیم که وظیفه آن ایجاد شی جدید است و درون آن بررسی میکنیم که اگر مقدار instance برابر با null بود یک شی از کلاس Request ایجاد کند و مقدار آن را درون متغیر instance قرار میدهد و در غیر این صورت متغیر instance را برمیگرداند.به کد زیر نگاه کنید تا متوجه شوید


class Request {
private static $instance = null; public $ip; public $agent;
private function __construct() { $this->ip = $_SERVER[&quotREMOTE_ADDR&quot]; $this->agent = $_SERVER[&quotHTTP_USER_AGENT&quot]; } public static function get_instance() : Request { if(self::$instance == null){ self::instance = new Request; } return self::instance; }
}



الگوی طراحی singletondesign patternsالگوهای طراحیphpشی گرایی در php
ای دل غم این جهان فرسوده مخور/ بیهوده نئی غمان بیهوده مخور/ چون بوده گذشت و نیست نابوده پدید/ خوش باش غم بوده و نابوده مخور
شاید از این پست‌ها خوشتان بیاید