摘要:
一、vim的基本配置 1、配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录($HOME)下,都可以自己建立私有的配置文件(仅对这个用户有效),命名为:“.vimrc”。例如,/root目录下,通常已经存在一个. 阅读全文
摘要:
一、命令模式 将一个请求封装为一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 (1)Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令。(2)ConcreteCommand类: 阅读全文
摘要:
一、代理模式 为其他对象提供一种代理以控制对这个对象的访问。 代理模式分为四种: 远程代理:为了一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 虚拟代理:根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的对象。 安全代理:用来控制真实对象访问时的权限。 阅读全文
摘要:
一、享元模式 在一个系统中如果有多个相同的对象,这些对象有部分状态是可以共享的,我们运用共享技术就能有效地支持大量细粒度的对象。 二、例子 举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子。现在要实现一个围棋程序,该怎么办呢?首先要考虑的是棋子棋盘的实现,可以定义一个棋子的类,成员变量包括 阅读全文
摘要:
一、外观模式 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易被使用。 二、UML图 三、例子 举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析、语法分析、中间代码生成、机器码生成。学过编译都知道,每一步都很复杂。对于编译器这个系统,就 阅读全文
摘要:
一、装饰模式 动态地给一个对象添加额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。 二、UML图 1.Component(概念中提到的对象接口),也就是“被装饰者”。2.ConcreateComponent(未添加任何职责的,对象接口的子类) 阅读全文
摘要:
一、概念 组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。 二、UML图 1.Component(对象接口),定义了对象可以做的事情。 2.Leaf(叶子结点对象) 3.Composite(其他结点对象,包含其他结点或者叶子节点) 三 阅读全文
摘要:
一、概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或者多个维度的变化,如何应对这种“多维度的变化”,就可以利用桥接模式。 引例: 设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案: •第一种 阅读全文
摘要:
一、适配器模式 适配器模式的主要作用是在新接口和老接口之间进行适配。将一个类的接口转换成客户端期望的另外一个接口。其实适配器模式有点无赖之举,在前期设计的时候,我们就不应该考虑适配器模式,而应该通过重构统一接口。 二、适配器模式分为类适配器模式和对象适配器模式 类适配器模式:适配器使用多重继承对一个 阅读全文
摘要:
一、原型模式 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式实现的关键就是实现Clone函数,还需要实现深拷贝。 二、UML类图 三、例子 三、原型模式的优点及适用场景 使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法 阅读全文