首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
设计模式
订阅
刘泽民
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
浅入理解单例模式
在 PHP 中,甚至不只 PHP 中,我们都会用到全局变量,以保存全局状态。可是,往往全局变量是全局共享的,任何地方任何代码都有可能将其覆盖
Chain of responsibility-责任链模式
它主要解决的问题是“递归、循环”问题或者大量的if-else 问题。通过定义不通的receiver,并在运行时决定receiver的执行顺序。它带来的一个好处是:receiver逻辑耦合(可以分不同的场景划分receiver逻辑), 代码结构清晰。 Sender:生成具有一定处…
再谈优雅重试(retry)机制
应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务逻辑包装给处理方法返回处理结果;第二步拿到第一步结果或者捕捉异常,如果出现错误或异常实现重试上传逻辑,否则继续逻辑操作。 这个问…
command模式
使发令者与执行者之间相分离。 比如后台开发过程中的请求数据库、RPC接口等。通常情况下,我们会将请求逻辑(参数封装、结果解析、异常控制等)交给请求方控制,这样会导致代码逻辑十分混乱,业务逻辑与接口请求逻辑混杂在一起。 Receiver:这个可有可无,主要做回调。获取concre…
Laravel核心代码学习 -- 观察者模式
Laravel的Event事件系统提供了一个简单的观察者模式实现,能够订阅和监听应用中发生的各种事件,在PHP的标准库(SPL)里甚至提供了三个接口SplSubject, SplObserver, SplObjectStorage来让开发者更容易地实现观察者模式,不过我还是想脱…
谈谈代码性能优化中的一些小细节
前一篇谈了一下代码中函数和接口命名的思路,今天针对我们日常代码中的一些小细节,谈谈我们可以优化的地方,希望对大家有用。 明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作: 除此之外,…
Java Builder 模式,你搞懂了么?
在 oop 编码设计中,我们有句经典的话叫做 "万物皆对象".实际开发中,我们只要能拿到类的实例,即对象。就可以开始搞事情啦,可以命令对象去做一些事情,当然啦~每个对象的能力都是不同的,能做的事情也是不同。对象中存储着类的成员属性(成员变量和成员方法)。我们命令对象去为我们工作…
浅谈Laravel中的设计模式(四) Contract 契约模式
学过Java的童鞋一定知道interface、抽象类之类的概念。 主要就是为了具有相同操作的类定义一些共同的方法,但是具体逻辑就由具体类去实现,也就是为了降低耦合度。 另外就是为了定下一个相同的规范,因为在实际工作中很有可能相同功能的类是由不同的人员编写的,及早定下规范更便于使…
facade-门面模式
客户端调用逻辑与业务代码有效隔离,使得客户端调用只和Facade进行交互,内部的调用逻辑由Facade进行实现。此模式也可以和接口化编程结合,进一步降低客户端与业务逻辑的耦合
visitor-访问模式
采用“双重委派”方式,使访问者和被访问对象进行隔离。有点难理解。。。。 它有一定的应用局限性,访问者和被访问者应该可被枚举,结构相对固定。比如说:运算符处理与数据结构的关系。(运算符+-*/可枚举,类型如String, int ,Object也是可以枚举的) 我们以处理运算表达…