03 2019 档案
摘要:操作环境 CentOS6.5 64bit,gcc原版本为4.4.7,不能支持C++11的特性,所以需要升级 [root@zengxj ~]# wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz [root@zengxj ~]# tar
阅读全文
摘要:通过某种统一的方式遍历链表或者数组中的元素的过程叫做迭代遍历,这种统一的遍历工具我们叫做迭代器。 PHP中迭代器是通过Iterator 接口定义的。 ArrayIterator迭代器 foreach 默认实现了ArrayIterator接口,但是通过这个迭代器,可以实现更加高级的功能。 seek()
阅读全文
摘要:PHP SPL标准库有一下接口: Countable OuterIterator RecursiveIterator SeekableIterator SplObserver SplSubject ArrayObject 其中OuterIterator、RecursiveIterator、Seeka
阅读全文
摘要:SPL是用于解决典型问题的一组接口与类的集合。 双向链表 SplDoublyLinkedList SplStack SplQueue 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储自己的信息,还要保存前驱和后继节点的地址。 PHP SPL中的SplDoublyLinkedList
阅读全文
摘要:装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。装饰模式是以对客户透明的方式动态地给一个对象附加上更多的职责。这也就是说,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 装饰模
阅读全文
摘要:原型模式(Prototype Pattern):与工厂模式类似,都是用来创建对象的。利用克隆来生成一个大对象,减少创建时的初始化等操作占用开销。 为什么需要原型模式? 1、有些时候,我们需要创建多个类似的大对象。如果直接通过new对象,开销很大,而且new完还得进行重复的初始化工作。我们可以把初始化
阅读全文
摘要:在策略模式中,一个类的行为或其算法可以在运行时更改,这种类型的设计模式属于行为型模式,它让算法的变化独立于使用算法的客户。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 它是定义一系列算法,把它们一个个
阅读全文
摘要:适配器模式将一个类的接口适配成用户所期待的,一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起。 1、Target适配目标 : 该角色定义把其他类转换为何种接口,也就是我们的期望接口。 2、Adaptee被适配者 :就是需要被适配的接口。 3、Adapter适配器:其他的两个角色都是已经存
阅读全文
摘要:注册树模式通过将对象实例注册到一棵全局的对象数上,需要的时候从对象树上采摘的模式设计方式。和果树不同的是,果子只能采摘一次,而注册树上的实例却可以无数次获取。使用了注册树模式后,对于实例,我们能够更好地统筹管理安排,就像使用全局变量一样地方便使用。 为什么采用注册树模式? 单例模式解决的是如何在整个
阅读全文
摘要:观察者模式为您提供了避免组件之间紧密耦合的另一种方法。该模式非常简单:观察者模式是一种事件系统,意味着这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作。 观察者模式定义对象的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通
阅读全文
摘要:工厂模式就是一种类,是指包含一个专门用来创建其他对象的方法的类,工厂类在多态性编程实践中是至关重要的,它允许动态的替换类,修改配置,通常会使应用程序更加灵活。 工厂模式通常用来返回符合类似接口的不同的类,工厂的一种常见用法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应实例化哪
阅读全文
摘要:所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,即在应用程序中只会有这个类的一个实例存在。通常单例模式用在仅允许数据库访问对象的实例中,从而防止打开多个数据库连接,单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡
阅读全文