1.单例模式
一个类只能允许一个对象存在
2。工厂模式
工厂模式,顾名思义,就像一个工厂。你把原材料放进工厂,出来的就是成品。您不需要知道工厂里做了什么。工厂模式主要用于解耦。
将对象创建和使用的过程分开。比如:ClassA调用ClassB,那么ClassA只调用ClassB的方法,
至于实例化ClassB,是在工厂中实现的。这样不仅减少了代码的复用,也方便了ClassB的后期维护。
如果ClassB的实例化过程很复杂,如果使用简单工厂模式,你会发现外部不需要关注复杂的实例化,只需要调用ClassB的方法即可,减少错误
接口mysql{ 公共函数连接(); } 类 mysqli2 实现 mysql{ 公共函数连接(){ 回显“mysqli”; } } 类 pdo2 实现 mysql{ 公共函数连接(){ 回显“pdo”; } } 类 mysqlFactory{ 静态公共函数工厂($class_name){ 返回新的$class_name(); } } $obj = mysqlFactory::factory('pdo2'); $obj->connect();
3。注册模式
注册模式,解决全局共享和交换对象。创建的对象挂在一个全局可用的数组上,
需要使用时直接从数组中获取即可。在全局树中注册该对象。直接去任何地方参观。
4。适配器模式
将一个类的接口转换成客户想要的另一个接口。
//目标角色 界面目标 { 公共函数newMethod1(); 公共函数newMethod2(); } //需要适配的类(Adaptee) 类人 { 公共函数oldMethod1() { 回声“男人”; } 公共函数oldMethod2() { 回声“男人”; } } //需要适配的类(Adaptee) 阶级妇女 { 公共函数oldMethod1() { 回声“女人”; }公共函数oldMethod2() { 回声“女人”; } } //适配器, 类适配器实现目标 { 私有$adaptee; 公共函数 __construct($adaptee) { $this->adaptee = $adaptee; } 公共函数 newMethod1() { //用少量的代码来适配被适配者 回声“性别:”; $this->adaptee->oldMethod1(); } 公共函数 newMethod2() { echo '性别姓名:'; $this->adaptee->oldMethod2(); } } $adapter1 = 新适配器(new Man); $adapter1->newMethod1(); $adapter2 = 新适配器(新女人); $adapter2->newMethod2();5。策略模式
这是一个男人和女人的问题,将一组特定的行为和算法封装到类中以适应某些特定的上下文。
用户策略.php 策略->showAd(); 回声“
”; 回显“类别”; $this->策略->showCategory(); 回声“
”; } 函数 setStrategy(UserStrategy $strategy){ $这个->策略=$策略; } } $page = 新页面(); if(isset($_GET['男'])){ $strategy = new MaleUser(); }别的 { $strategy = new FemaleUser(); } $page->setStrategy($strategy); $page->index();6。原型模式
不常用,仅用于大型对象类,如clone
所示7。观察者模式
从面向过程的角度来看,首先观察者注册主题。注册后,主题通知观察者进行相应的操作,整个事情就结束了
/** * 事件生成类 * 事件生成器类 */ 抽象类事件生成器 { 私人 $ObServers = []; //添加观察者 公共函数添加(ObServer $ObServer) {$this->ObServers[] = $ObServer; } //事件通知 公共函数notify() { foreach ($this->ObServers as $ObServer) { $ObServer->update(); } } } /** * 观察者接口类 *观察服务器接口 */ 接口观察服务器 { 公共函数更新($event_info = null); } /** *观察者1 */ 类 ObServer1 实现 ObServer { 公共函数更新($event_info = null) { echo "观察者1收到执行通知,执行完成!\n"; } } /** *观察者1 */ 类 ObServer2 实现 ObServer { 公共函数更新($event_info = null) { echo "观察者2收到执行通知,执行完成!\n"; } } /** * 事件 * 班级活动 */ 事件类扩展了事件生成器 { /** * 触发事件 */ 公共函数触发器() { //通知观察者 $this->notify(); } } //创建一个事件 $事件=新事件(); //将旁观者添加到事件中 $event->add(new ObServer1()); $event->add(new ObServer2()); //执行事件并通知旁观者 $event->trigger();相关推荐
企业信息化建设:构建数字化竞争
开启智慧人生!全新教程视频课程
就业方向:探索职业发展的无限可
信息处理理论百度百科,改变我们
对信息管理的理解和看法,数据洪
未来已来!这位科技巨头如何用A
企业信息化建设的主要内容包括
信息检索技术应用有哪些内容,探
企业信息化建设总体思路:实现数
信息处理的软件叫什么来着,革新
信息检索新升级:提高查准率的秘
加密公司有哪些,未来安全与信任
信息化管理软件:提升企业管理效
信息管理相关工作岗位有很多,以
信息化处理主要是干嘛的,数据背
加密公司,如何改变我们的未来?
信息集成证书,开启未来科技领域
企业信息化建设:现状揭秘与前景
管理学校:打造未来科技领袖的摇
信息传播特点和传播模式的区别
信息系统集成证书怎么考,掌握未
传统,为您的企业打造定制化解决
一文搞懂信息系统集成资质证书有
信息检索常用的五种方法,五大神