现在位置: 首页 > 设计模式
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。 类型:行为类模式 类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印,打印功能好实现,排序就有点麻烦了。但...
阅读全文
2012-07-18 06:13 工业·编程 ⁄ 共 635字 暂无评论
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。 工厂方法模式:用于创建复杂对象。 抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。 建造者模式:用于创建模块化的更加复杂的对象。 原型模式:用于得到一个对象的拷贝。 为什么需要创建性模式 首先,在编程中,对象的创建通...
阅读全文
    Singleton模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。比如读取并保存配置文件的类就只应该有一个实例。Singleton模式比较简单,也很容易理解。所以不做太多解释,上源码,两种方式的实现代码: //Singleton.h #ifndef _SINGLETON_H_ #define _SINGLETON_H_ // 单例模式实现方法1 class Singleton { public: static Singleton* GetInstance(); protected: private: Sing...
阅读全文
2012-07-17 21:24 工业·编程 ⁄ 共 3781字 暂无评论
    借用《设计模式精解-GoF 23种设计模式解析》的原文来表述一下:面向对象系统的分析和设计实际上追求的就是两点,一是高内聚(Cohesion),而是低耦合(Coupling)。这也是我们软件设计所准求的,因此无论是OO中的封装、继承、多态,还是我们的设计模式的原则和实例都是在为了这两个目标努力着、贡献着。设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或...
阅读全文
2012-07-17 06:07 工业·编程 ⁄ 共 2184字 暂无评论
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会...
阅读全文
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 类型:创建类模式 类图: 四个要素 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。 抽象建造者:引入抽象建造者的目的,是为了将建造的...
阅读全文
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 类型:创建类模式 类图: 抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模...
阅读全文
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 类型:创建类模式 类图: 工厂方法模式代码 interface IProduct {     public void productMethod(); } class Product implements IProduct {     public void productMethod() {         System.out.println("产品");  ...
阅读全文
2012-07-17 05:58 工业·编程 ⁄ 共 2455字 评论 1 条
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 类型:创建类模式 类图: 类图知识点: 1.类图分为三部分,依次是类名、属性、方法 2.以<<开头和以>>结尾的为注释信息 3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。 4.带下划线的属性或方法代表是静态的。 5.对类图中对象的关系不熟悉的朋友可以参考文章:设计模式中类的关系。 单例模式应该是23种设计...
阅读全文