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());
?>

2. 单例模式