一、MVC
前言:
MVC是一种应用架构模式,也可以说是一种业务架构或是一种应用设计思想,用于组织业务逻辑并分离代码的。
MVC组成结构是Model-View-Controller,Model是管控数据层,View是管控视图层,Controller是管控业务逻辑层。
举例:
例如后台管理系统:用户通过域名访问,控制层(Controller)收到信号后会去查找用户登录标识,如果用户没有登录,会告诉视图层(View),展示登录页面,让用户登录。
例如还是后台管理系统:用户登录后台管理系统,添加后台管理员账号及密码,后台管理员能看到添加的管理员账号。
二、设计模式
前言:
设计模式是一套指导原则,用来指导开发者组织代码结构的,以便于更好的应对业务变化及提高代码的可维护性。
设计模式通常具备以下特点:
1、重用性 :在特定的场景下,设计模式可以被重复使用,对相同类型不同问题的环境,其解决方案都有效
2、灵活性: 可以根据具体的需求和条件进行调整和变化,以满足特定的开发需求
3、维护性: 提供了一种标准化的解决方案
4、扩展性: 支持软件的未来发展和变化,使得软件更容易适应新的需求和变化
举例:
例如我们常见的线下活动:签到、答题、抽奖等,利用工厂模式
abstract class TemplateHandle
{
/**
* 获取模板信息
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:44
* @ param $id
* @ return mixed
*/
protected abstract function getTemplate($id);
/**
* 保存模板
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:43
* @ param $param
* @ return mixed
*/
protected abstract function saveTemplate($param);
}
class TemplateFactory
{
protected static $instance = null;//缓存实例
protected $channelType = 0;//通道类型
//初始化参数
public function __construct($type){
$this->channelType = $type;
}
//选择通道
public function templateHandle(){
switch ((int)$this->channelType){
case 1:
// 答题模板
self::$instance = new Answer();
break;
case 2:
self::$instance = new Pic();
break;
case 3:
self::$instance = new Other();
break;
case 4:
break;
default:
self::$instance = null;
throw new BaseError("未设置任何通道",50000,200);
break;
}
return self::$instance;
}
}
class Pic extends TemplateHandle
{
/**
* 初始化
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:44
* Pic constructor.
*/
public function __construct(){
}
/**
* 获取模板信息
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:44
* @ param $id
* @ return mixed
*/
public function getTemplate($id)
{
// TODO: Implement getTemplate() method.
}
/**
* 保存模板
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:43
* @ param $param
* @ return mixed
*/
public function saveTemplate($param)
{
// TODO: Implement saveTemplate() method.
}
}
class Answer extends TemplateHandle
{
/**
* 初始化
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:44
* Pic constructor.
*/
public function __construct(){
}
/**
* 获取模板信息
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:44
* @ param $id
* @ return mixed
*/
public function getTemplate($id)
{
// TODO: Implement getTemplate() method.
}
/**
* 保存模板
* User: 龙哥·三年风水
* Date: 2024/8/27
* Time: 9:43
* @ param $param
* @ return mixed
*/
public function saveTemplate($param)
{
// TODO: Implement saveTemplate() method.
}
}