php的设计模式整理 - SegmentFault-Erics/learnPHP GitHub Wiki
前言
在使用php开发过程中,遵循一定的设计方法不仅可以使代码更加优美,而且可以避免一些不必要的麻烦。这里所谓的设计方法就是设计模式,下面对常用的几种设计模式进行整理。
1. 工厂模式
工厂模式就是一种类,内部提供一些创建对象的方法,而不是在外部直接new出对象。这样做的好处是可以方便的为对象修改或者增加参数。
<?php
Interface IUser{
function getName();
function getAge();
function getGroup();
}
class User implements IUser{
protected $_name;
protected $_age;
protected $_group;
function __construct($name, $age, $group) {
$this->_name = $name;
$this->_age = (int)$age;
$this->_group = $group;
}
function getName() {
return $this->_name;
}
function getAge() {
return $this->_age;
}
function getGroup() {
return $this->_group;
}
}
class UserFactory{
private static $array = array(array("小明", 25, "学生"), array("张三", 45, "老师"));
static function create($id) {
list($name, $age, $group) = self::$array[(int)$id];
return new User($name, $age, $group);
}
}
$object1 = UserFactory::create(0);
$object2 = UserFactory::create(1);
echo($object1->getName() . "今年" . $object1->getAge() . "职业为" . $object1->getGroup() . "\n");
echo($object2->getName() . "今年" . $object2->getAge() . "职业为" . $object2->getGroup());
?>