老生常谈PHP面向对象之命令模式(必看篇)
这个模式主要由 命令类、用户请求数据类、业务逻辑类、命令类工厂类及调用类构成,各个类的作用概括如下: 1、命令类:调用用户请求数据类和业务逻辑类;2、用户请求数据类:获取用户请求数据及保存后台处理后返回的结果;3、业务逻辑类:如以下的示例中验证用户登陆信息是否正确的功能等;4、命令工厂类(我自己取的名字,哈哈):生成命令类的实例,这个类第一次看的时候我觉得有点屌,当然看了几遍了还是觉得很屌 :);5、调用类:调用命令类,生成视图;直接看代码: class LoginCommand extends Command{ //处理用户登陆信息的命令类
function execute (CommandCotext $context){ //CommandCotext 是一个处理用户请求数据和后台回馈数据的类 $manager = Registry::getAccessManager(); //原文代码中并没有具体的实现,但说明了这是一个处理用户登陆信息的业务逻辑类 $user = $context->get('username'); $pass = $context->get('pass'); $user_obj = $manager->login($user,$pass); if(is_null($user_obj)){ $context->setError($manager->getError); return false; } $context->addParam('user',$user_obj); return true; //用户登陆成功返回true } } class FeedbackCommand extends Command{ //发送邮件的命令类 //用户请求数据类 function __construct (){ function addParam($key,$val){ function get($key){ function setError($error){ function getError(){ //命令类工厂,这个类根据用户请求数据中的action来生成命令类 class CommandFactory { static function getCommand($action='Default'){ //调用者类,相当于一个司令部它统筹所有的资源 function process(){ // 客户端 以上这篇老生常谈PHP面向对象之命令模式(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |