策略模式(Strategy Pattern)定义定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。设计的原则和思想解耦策略的定义、创建和使用这三部分。不变部分是算法本身,变化的部分是算法的调用。核心思想是动态确定算法(变化)。一句话概括设计模式相同的接口,相同的方法,不同的策 ......
494
0
0
2022-08-04
我们在开发或者设计一个网站的时候,经常会遇到要短信群发,或者群发email,或者给系统的所有用户发送站内信,或者在订单系统里,我们要记录大量的日志。如果我们的系统是电商系统,在做抢购,秒杀的活动的设计的时候,服务器在高并发下,根本就无法承受这种瞬间的压力等等,很多例子。。。那如果遇到这些问题,如何保证系统能够正常有效的运行,我们该如何去设计,如何去处理呢?这 ......
396
0
0
2022-08-02
PHP 8.1 现已推出,它附带了新功能和性能改进——最令人兴奋的是新的 JIT 编译器。它最近于 2021 年 11 月 25 日发布。我将详细演示 PHP 8.1 提供的 10 大特性,以便您可以开始在您的项目中使用它们,并改善您的 PHP 体验。初学者和有经验的开发人员可以从本文中受益。PHP 8.1 提供的 10 大功能枚举Fiber(纤维)neve ......
430
0
0
2022-08-02
来展示:1、首先你得装阿里短信sdk文档传送门composer require alibabacloud/sdk 发短信控制器<?php namespace App\Controllers; use App\Requests\App\AppSendSmsRequest; use App\Services\SmsService as Servic ......
454
0
0
2022-08-02
组合模式 - Composite Pattern定义组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式。设计的原则和思想解耦的是客户程序与复杂元素内部结构。不变部分是元素之间的层次结构,变化部分是元素。核心思想是 ......
416
0
0
2022-08-01
装饰模式 - Decorator Pattern定义动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。这样可以给某个对象而不是整个类添加一些功能。设计的原则和思想解耦的是装饰者和被装饰者。不变部分是被装饰者,变化部分是装饰者。核心思想是对对象自身功能进行增强。一句话概括设计模式通过组合的方式,增强对象自身的功能,并且支持 ......
326
0
0
2022-08-01
享元模式 - Flyweight Pattern定义运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。享元概念内部状态 在享元对象中可共享的状态叫内部状态。外部状态 在享元对象中不可共享的状态叫外部状态。享元池 享元工厂里面存在享元对象的变量叫做享元池。设计的原则和思 ......
361
0
0
2022-08-01
外观模式(Facade Pattern)定义为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。设计的原则和思想解耦的是客户端和子系统。不变部分是子系统,变化部分是多个子系统之间的依赖性。核心思想是封装交互,简化调用。一句话概括设计模式为多个业务类的调用提供了一个统一的入口,简化了类与类之间的交互。结构中包 ......
311
0
0
2022-08-01
适配器模式 - Adapter Pattern定义将一个接口转换成客户所期望的另一个接口,使接口不兼容的那些类可以一起工作。设计的原则和思想解耦的是目标类(适配器类)和适配者类。不变部分是适配者,变化部分是适配器。核心思想是将类中原本不兼容的接口转换成兼容的接口。是一种事后的补救策略。一句话概括设计模式将接口转换成另一个接口,消除不兼容问题。适配器模式分三种 ......
333
0
0
2022-08-01
桥接模式 - Bridge Pattern定义将抽象部分与它的实现部分分离,使它们都可以独立地变化。设计的原则和思想解耦的是抽象部分和实现的部分。不变部分是抽象部分,变化部分是实现部分。核心思想是通过组合的方式,让类的个数从指数增长下降到线性增长。一句话概括设计模式一个类存在多个独立变化的维度,通过组合的方式,让多个维度可以独立地变化。经典版本结构中包含的角 ......
365
0
0
2022-08-01
代理模式 - Proxy Pattern定义给某一个对象提供一个代理对象,并由代理对象来控制对原对象的访问。 设计的原则和思想解耦的是代理者与被代理者。不变部分是代理者,变化部分是被代理者。核心思想是在不改变对象的情况下,为对象增加一些与本身业务没什么关系的额外功能,但不会为对象本身的功能进行增强。一句话概括设计模式通过代理的方式去控制对一个对象的访问结构中 ......
367
0
0
2022-08-01
原数据[{ "name": "颜色", "attr_values": "白色,黑色" }, { "name": "内存", "attr_values": "64G,128G" }, { "name": "型号", "attr_values": "X,pro" }] 目标数据 [{ ......
457
0
0
2022-08-01
PHP8.0 新特性解读和示例新增命名参数功能啥是命名参数?就是 具名 参数,在调用函数的时候,可以指定参数名称,指定参数名称后,参数顺序可以不安装原函数参数顺序传.例子: <?php /** * 计算余额方法 * @param $amount 账户金额 * @param $paymen ......
479
0
0
2022-07-30
一、 下载swoole安装包 git clone https://gitee.com/swoole/swoole.git 二、切换到 swoole 目录 cd swoole 三、编译并配置和安装 phpize && ./configure --with-php-config=/usr/bin/php-config7.3 &&a ......
497
0
0
2022-07-30
以PHP视角探寻Kafka - 实现简易生产者功能代码先行public function actionProducer() { $conf = new \RdKafka\Conf(); $conf->set('metadata.broker.list', 'broker地址'); /** * kafka投递回调 * ......
538
0
0
2022-07-25