数据库设计
发表于
本文字数:
4.8k
阅读时长 ≈
17 分钟
【转】赶集Mysql军规
发表于
本文字数:
788
阅读时长 ≈
3 分钟
如何高效生成趋势有序的全局唯一ID?
发表于
本文字数:
2.9k
阅读时长 ≈
11 分钟
nodejs 基础
发表于
本文字数:
267
阅读时长 ≈
1 分钟
Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。
如何快乐的去工作
发表于
本文字数:
1.1k
阅读时长 ≈
4 分钟
门面模式(command pattern)
发表于
更新于
本文字数:
406
阅读时长 ≈
1 分钟
命令模式就是将一组对象的相似行为,进行了抽象,将调用者与被调用者之间进行解耦,提高了应用的灵活性。命令模式将调用的目标对象的一些异构性给封装起来,通过统一的方式来为调用者提供服务。
CommandInterface.php
1 | <?php |
HelloCommand.php
1 | <?php |
Receiver.php
1 | <?php |
Invoker.php
1 | <?php |
测试代码 Tests/CommandTest.php
1 |
|
代理模式(proxy pattern)
发表于
更新于
本文字数:
564
阅读时长 ≈
2 分钟
代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。
在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。
代理模式在很多情况下都非常有用,特别是你想强行控制一个对象的时候,比如延迟加载、监视状态变更的方法等等。
与类似接口的区别:
- 适配器模式 —— 适配器模式为它所适配的对象提供了一个不同的接口,而代理提供了与它的实体相同的接口。
- 装饰器模式 —— 两者目的不同:装饰器为对象添加一个或多个功能,而代理则控制对对象的访问。
1 |
|
依赖注入(dependency injection pattern)
发表于
更新于
本文字数:
352
阅读时长 ≈
1 分钟
依赖注入模式需要在调用者外部完成容器创建以及容器中接口与实现类的运行时绑定工作,在 Laravel 中该容器就是服务容器,而接口与实现类的运行时绑定则在服务提供者中完成。此外,除了在调用者的构造函数中进行依赖注入外,还可以通过在调用者的方法中进行依赖注入。
- 构造注入
- setter注入
- 接口注入
1 | interface Shape |
构造注入
1 |
|
setter 注入
1 |
|
interface 注入
1 | interface ServiceSetter |
工厂模式(factory pattern)
发表于
更新于
本文字数:
144
阅读时长 ≈
1 分钟
1 | interface Shape |