举个例子,具体的业务逻辑肯定更复杂;
class Response {
public static function send($data) {
echo json_encode($data);
}
}
class Request {
public static function post($key = null) {
return isset($_POST[$key]) ? $_POST[$key] : $_POST;
}
}
class Controller {
public function create() {
$data = Request::post();
$result = (new Model())->create($data);
Response::send($request);
}
}
class Model {
public function create($data) {
// 开启事务
try {
(new CommentModel())->create($data['member_id'],$data['content']); // 保存评论
(new IntegralModel())->update($data['member_id'],5); // 更新积分
// 提交事务
} catch(Exception $e) {
// 事务回滚
}
}
}
class CommentModel {
public function create($member_id,$content) {
throw new Exception('保存失败');
}
}
class IntegralModel {
public function update($member_id,$integral) {}
}
主要想表达一个什么意思呢?程序逻辑尽量清晰,每个方法该干什么就尽量把职责进行区分,不要放到一起,代码又长又臭。
而且,不同的业务逻辑还会运用到设计模式。