10 2022 档案
摘要:简介: 策略模式又叫做政策模式,用于如何组织和调用算法的,是属于行为型模式的一种。 策略模式需要三个角色构成: Context 封装角色:也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。 Strategy 抽象策略角色:通常为接口,指定规则。 Concr
阅读全文
摘要:简介: 责任链模式又叫做职责链模式,是属于行为型的一种。 责任链模式分为两种: 第一种像工厂流水线,目的就让每一个环节都进行处理。 第二种像层层审批,如果其中一个对象无法处理,调用下一个对象来进行处理,如果一旦能处理,链式就此停止,以此类推,第二种为了程序的健壮性,至少得需要一个兜底的模块,防止穿透
阅读全文
摘要:简介 观察者模式是行为型模式的一种,定义了对象间一对多的关系。当对象的状态发生变化时候,依赖于它的对象会得到通知。 适用场景 类似触发钩子事件,可做消息通知、框架底层监听。 一个对象的改变会导致一个或多个对象发生改变,方便扩展的写法。 优点 方便扩展,降低耦合,统一触发规则。当需要新增或者删除一个观
阅读全文
摘要:简介: 单例模式是创建型对象的一种,用于如何优雅的创建对象。 让一个类最多产生一个对象。 场景: 只需要一个对象就能解决并且要使用多次的场景,比如框架的数据库连接。 优点: 减少资源消耗,一个对象能完成的事情,就不需要再实例化出来同样的东西。 缺点: 对象生命周期都是页面级的,每次页面被执行时,都会
阅读全文
摘要:简介 工厂模式属于创建型模式,可以分为三种:简单工厂、工厂模式、抽象工厂。 通俗讲就是用于如何优雅的创建对象而设计。当开发者不知道建什么对象,或者创建方式过于复杂的时候去使用(比如引入一个大composer项目或大型sdk,有些时候确实不知道需要使用那些对象,此时就需要参考官方文档,通过包里或sdk
阅读全文
摘要:在模型文件中写入以下代码: /** * @function 实现一个简单的laravel乐观锁 * @return int 受影响的函数 * @other void */ public function cas() { //首先判断数据是否存在 if(! $this->exists) { retur
阅读全文
摘要://在app/Providers/AppServiceProvider.php的boot方法中写入 DB::listen(function ($query) { Log::channel('db')->info($query->sql, $query->bindings); }); //为了系统日志
阅读全文
摘要:前言 内存木马,就是在内存中运行的木马病毒,没有代码实体。内存木马有着强隐蔽性,排查困难,杀不死(俗称不死马)的特点。 网络安全行业,有着很强的木桶效应。系统对抗黑帽,胜负取决于安全最薄弱的环节。黑帽对抗白帽,胜负取决于攻击水平和和毁尸灭迹隐蔽的水平。 正文 本文不讨论是由于任意文件上传还是近源攻击
阅读全文