در ادامه بحث هامون در مورد دیزاین پترن ها امروز میخوام بصورت خلاصه در مورد singleton design pattern بنویسم که فکر میکنم به درد خیلی هاتون بخوره و خیلی از پیچیدگی کد نویسی رو براتون کمتر کنه. بصورت خلاصه و مفید اگه بخوام بگم این دیزاین پترن همونطور که از اسمش پیداست از تکرار جلوگیری میکنه و جاهایی استفاده میشه که بخوایم یه کد تکراری رو فقط یکبار بنویسیم. پس سینگلتون جاهایی به کارمون میاد که ما به یه نمونه از شی بصورت گلوبال میخوایم دسترسی داشته باشیم. مثلا شما ممکنه مجبور باشید توی یک سیستم بارها به دیتابیس وصل بشید. یا ممکنه بخواید از api یه سایت دیگه هر چند بار پشت سر هم استفاده کنید یا هر چیز دیگه ای که خودتون صلاح میدونید… با مثال توضیح میدم که ایده ی این الگو چطور هست. در زیر یه پیاده سازی پایه از این الگو رو میبینیم :
class Database { public static function Instance() { static $inst = null; if ($instnce === null) { $instnce = new Database(); } return $instnce; } public function getUsers() { return 'users...'; } public function getPosts() { return 'posts...'; } } $users = Database::Instance()->getUsers(); $posts = Database::Instance()->getPosts();
همونطور که میبینید Instance به صورت متد استاتیک تعریف شده و بصورت استاتیک بهش دسترسی پیدا میکنیم.
چرامن نمیفهمم اگه انقد آسونه
سلام. خیلی ممنون بابت مقالتون. همیشه همینجوری با مثال و ساده و خودمونی توضیح بدین. من طرفدار این نوع آموزش هستم. موفق باشید
این قسمت از کد دقیقا کارش چیه؟
static $inst = null;