• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مقایسه الگوی factory و الگوی singleton
#11
نه منظورم این هست
http://en.wikipedia.org/wiki/Multiton_pattern#PHP
  پاسخ
تشکر شده توسط :
#12
(۱۳۸۹ مرداد ۲۷, ۰۴:۱۵ ب.ظ)admin نوشته: نه منظورم این هست
http://en.wikipedia.org/wiki/Multiton_pattern#PHP

این مثال چه ربطی به late static binding داشت؟ Huh

به دلیل استفاده از Reflection گفته requires php 5.3+

اینم پیاده سازی بدون استفاده از انعکاس که نیاز به نسخه 5.3 نباشه

کد پی‌اچ‌پی:
<?php
class MultitonExample {
public static function 
getInstance$key ) {
if ( !
array_key_exists$key$instances ) ) {
$instances[$key] = new MultitonExample();
}
return 
$instance[$key];
}
private function 
__construct()
{
}
private function 
__clone()
{
}
static private  
$instances = array();
};
?>
  پاسخ
تشکر شده توسط : zoghal
#13
reflection که توی نسخه های قبل از php 5.3 هم بود

الان مثال شما درست کار نمی کنه که چون instances که داخل متد تعریف شده.

مشکل سر این پروپرتی instances هست
  پاسخ
تشکر شده توسط :
#14
(۱۳۸۹ مرداد ۲۷, ۰۶:۲۹ ب.ظ)admin نوشته: reflection که توی نسخه های قبل از php 5.3 هم بود

الان مثال شما درست کار نمی کنه که چون instances که داخل متد تعریف شده.

مشکل سر این پروپرتی instances هست

درسته مال late static binding هست، get_called_class رو ندیدم

ولی نفهمیدم واسه چی مثالم درست کار نمیکنه؟
  پاسخ
تشکر شده توسط :
#15
توی متدتون باید به جای $instances باید از $this->instances استفاده کنین
اگر استفاده کنین باید درست کار کنه
  پاسخ
تشکر شده توسط :
#16
(۱۳۸۹ مرداد ۲۸, ۰۱:۱۳ ب.ظ)admin نوشته: توی متدتون باید به جای $instances باید از $this->instances استفاده کنین
اگر استفاده کنین باید درست کار کنه

درسته
چون هول هولی نوشتم، اشتباه شد
البته آرایه instances رو داخل متد تعریف کنیم هم مشکل حل میشه
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان