PHP设计模式之观察者模式(Observer)详细介绍和代码(3)

/**
     * 满足条件时通知观察者
     * @param int $type 观察类型
     */
    public function notify($type)
    {
        if(!empty($this->observers[$type]))
        {
            foreach($this->observers[$type] as $observer)
            {
                $observer->update($this);
            }
        }
    }

/**
     * 添加用户
     * @param str $username 用户名
     * @param str $password 密码
     * @param str $email 邮箱
     * @return bool
     */
    public function addUser()
    {

//执行sql

//数据库插入成功
        $res = true;

//调用通知观察者
        $this->notify(self::OBSERVER_TYPE_REGISTER);

return $res;
    }

/**
     * 用户信息编辑
     * @param str $username 用户名
     * @param str $password 密码
     * @param str $email 邮箱
     * @return bool
     */
    public function editUser()
    {

//执行sql

//数据库更新成功
        $res = true;

//调用通知观察者
        $this->notify(self::OBSERVER_TYPE_EDIT);

return $res;
    }
}

/**
* 观察者-发送邮件
*/
class Send_Mail implements SplObserver
 {
    /**
     * 相应被观察者的变更信息
     * @param SplSubject $subject
     */
    public function update(SplSubject $subject)
    {
        $this->sendMail($subject->email, $title, $content);
    }

/**
     *发送邮件
     *@param str $email 邮箱地址
     *@param str $title 邮件标题
     *@param str $content 邮件内容
     */
    public function sendEmail($email, $title, $content)
    {
        //调用邮件接口,发送邮件
    }
}
?>

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a2085b725793ea89cb866dd8d483339a.html