Подскажите паттерн

Активист

Активист
Команда форума
Подскажите паттерн

Есть два класа, один синглтон, назавем его core, и еще один класс, допустим child
PHP:
class core {
static private $isInit = null;
..
..
..
public $var1 = "10";
public $var2 = "11";
public $var3 = null

static function init() {
if (self::$isInit == null) {
  self::$isInit = new core();
}
		
return self::$isInit;
}

function afterProccess() {
$this->var3 = 12;
}
}

class child {
function __construct() {
...
...
...
...
}
}
Нужно в любом классе (например child), любой части кода передать все текушии атрибуты класса core классу child

Кто использвовал такие методы? Есть минусы?

Понимаю, что можно организовать доступ к core, например

PHP:
class chils {
protected $core = null;
function __construct (
   $this->core = core::init();
}
Но это несколько другое, нужно передать значения из класса core в child и выполнять действия в классе child не меняя атрибуты, методы в core.
 

dr-sm

Новичок
паттерн называется - глобальные переменные :D
я вот вобще не понимаю, зачем нужны эти извраты с синглтонами??
 

rotoZOOM

ACM maniac
dr-sm Для гарантии того, что на этапе исполнения скрипта у тебя будет существовать только 1 экземпляр класса. Или ты интересуешься про конкретные извраты товарища Активиста ?

-~{}~ 03.03.08 09:02:

Но это несколько другое, нужно передать значения из класса core в child и выполнять действия в классе child не меняя атрибуты, методы в core.
Передавать будет не сам core, а запрашиваться child'ом ? Если так, то почему тебе не нравится твой способ ?
 

Fred

Новичок
Автор оригинала: Активист
Есть два класа, один синглтон, назавем его core, и еще один класс, допустим child
PHP:
class core {
static private $isInit = null;
..
..
..
public $var1 = "10";
public $var2 = "11";
public $var3 = null

static function init() {
if (self::$isInit == null) {
  self::$isInit = new core();
}
		
return self::$isInit;
}

function afterProccess() {
$this->var3 = 12;
}
}

class child {
function __construct() {
...
...
...
...
}
}
так как в итоге core используется в child?
 
Сверху