摘要: 当我们在实际应用中需要提供撤销机制,当一个对象可能需要再后续操作中恢复其内部状态时,就需要使用备忘录模式。其本质就是对象的序列化和反序列化的过程,支持回滚操作。 作用 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先的状态。 类视图 实现 阅读全文
posted @ 2018-04-12 19:32 chencarl 阅读(270) 评论(0) 推荐(0) 编辑
摘要: ubuntu下只想做C++的程序代码编写,最开始选择了codeblock,主要目的是安装简单,集成度高,还可以调试,但是用的时候老是无故退出,改了半天的代码就这样丢失,挺苦恼的,可能跟自己装的系统比较新的缘故,某些依赖库可能不太稳定造成的,自己学着配置了VIM进行开发,也算上手了,可是代码的拷贝实在 阅读全文
posted @ 2018-04-12 00:47 chencarl 阅读(1714) 评论(0) 推荐(0) 编辑
摘要: 命令模式是我们能够实现发送者和接收者之间的完全解耦,发送者是调用操作的对象,而接收者是接收请求并执行特定操作的对象。通过解耦,发送者无需了解接收者的接口。在这里,请求的含义是需要被执行的命令。 作用 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持 阅读全文
posted @ 2018-04-11 17:06 chencarl 阅读(351) 评论(0) 推荐(1) 编辑
摘要: 责任链的目的是通过特定的设计对请求者和接收者之间进行解耦,请求者调用操作的对象,接收者接收请求并执行相关操作,通过解耦请求者不需要关心接收者的接口,同时也可增强职责的灵活性,通过改变链内的成员或调用次序,允许动态新增或删除责任。 作用 责任链模式通过将多个对象连成链式模式,并沿着这个链传递命令或者请 阅读全文
posted @ 2018-04-09 20:01 chencarl 阅读(387) 评论(0) 推荐(1) 编辑
摘要: 迭代器在STL运用广泛,类似容器的迭代已经成为其重要特性,而迭代器模式则是利用迭代器概念进行的抽象运用,迭代器模式运用广泛和有用,因为其能够不考虑数据的存储方式,而是直接面对数据进行迭代,也就是说我们不用考虑集合是数组(或vector)、链表、栈还是队列,而是通过统一的接口进行顺序的访问。 作用 迭 阅读全文
posted @ 2018-04-07 00:41 chencarl 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 观察者模式通常的叫法叫做订阅 发布模式,类似于报刊杂志的订阅,观察者和被观察者就是读者和邮局的关系,读者先要在邮局订阅想要的报刊,当报刊发行时,邮局会将报刊邮寄到读者家里。观察者(Observer)和被观察者(Listener)也是这种关系,Observer将自己attach到Listener中,当 阅读全文
posted @ 2018-04-06 14:59 chencarl 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式使用继承来实现模式的功能,在基类使用一个方法来定义算法的各个步骤,这些步骤(方法)的具体实现会放到子类中,通过这样来实现不同算法对象的算法拼合,完成该对象整体算法的实现。 作用 模板方法中定义了具体操作中所使用算法的各个步骤,并将其实现交由子类完成,从而实现多种不同的功能; 类视图 实现 阅读全文
posted @ 2018-04-04 23:50 chencarl 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 策略模式将不同算法的逻辑抽象接口封装到一个类中,通过组合和多态结合的方式来进行不同算法具体的实现。 作用 策略模式是一种定义一系列算法的方法,Strategy类层次为Context定义了一系列的可重用的算法或行为, 所有的算法以相同的方式进行调用,减少了算法类之间的耦合 类视图 实现 Strateg 阅读全文
posted @ 2018-04-04 22:18 chencarl 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 享元模式顾名思义就是羽量级模式或者蝇级模式,形容体量小的应用,该模式主要的设计目的是为了迎合系统大量相似数据的应用而生,减少用于创建和操作相似的细碎对象所花费的成本。大量的对象会消耗高内存,享元模式给出了一个解决方案,即通过共享对象来减少内存负载。 作用 通过复用相同的对象来减少对象的创建数量,创建 阅读全文
posted @ 2018-04-03 23:15 chencarl 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 仅仅是一些应用安装,后续将陆续写一写开发工具的安装和配置 [TOC] 安装 sogou 拼音 1. sudo add apt repository ppa:fcitx team/nightly 2. sudo apt get update 3. sudo apt get install fcitx 阅读全文
posted @ 2018-04-03 15:27 chencarl 阅读(777) 评论(0) 推荐(0) 编辑