设计模式大概分为三种:1)创建型2)结构型3)行为型.
创建型模式:(如何创建对象)
1.工厂模式(FACTORY METHOD PATTERN)提供了一个简单的决策类,他根据提供的数据返回一个抽象基类的多个子类中的一个.
2.抽象工厂模式(ABSTRACT FACTORY PATTERN)提供了一个创建并返回一系列相关对象的接口.他的主要目的是隔离要生成的具体类,这些类的实际类名隐藏才工厂类,客户端根本不需要知道.
3.单件模式(SINGLETON PATTERN)是指某个类只能有一个实例,他提供了一个访问该实例的全局访问点.
4.生成器模式(BUILDER PATTERN)将一个复杂对象的构建与他的表示分开,这样就能根据程序的需要创建不同的表现形式.他有点类似抽象工厂模式,两者都返回由许多方法和对象组成的类,差别在于,生成器是根据提供给他的数据一步一步地创建一个复杂对象.
5.原型模式(PROTOTYPE PATTERN)是先实例化一个类,然后拷贝或克隆该类来创建新的实例,可以用公有方法进一步修改.他能根据需要克隆类,在运行时添加或删除类,问题在于如果类早就存在,则不能改变他们来增加需要的克隆方法,另外,间接引用其他类的类也不能被真正克隆.

结构型模式:(如何组合对象)
1.适配器模式(ADAPTER PATTERN)可以使一个类的接口匹配另外一个接口.
2.组合模式(COMPOSITE PATTERN)对象的组合,他允许你构建一棵由各种相关类组成的树,其中任何一个对象既可以是一个组合,也可以是一个叶子.
3.代理模式(PROXY PATTERN)通常是一个简单对象,他代替一个比较复杂的稍后会调用的对象,而且实例化该对象代价比较高.
4.享元模式(FLYWEIGHT PATTERN)用于共享对象,其中的每一个实例都不包含自己的状态,而是将状态存储在外部.把一部分的类数据移到类外部,在执行方法时将数据传递进来.
5.外观模式(FACADE PATTERN)对客户屏蔽了复杂的子系统组件,并为一般用户提供了一个简单的程序接口,但他并没有限制高级用户在需要时使用深层的复杂的类.
6.桥接模式(BRIDGE PATTERN)将对象的接口和他的实现分离,这样就可以独立的改变他们.
7.装饰模式(DECORATOR PATTERN)他可以动态地给对象添加功能.他和外观模式的区别在于外观模式是将复杂系统隐藏在一个简单接口,而装饰模式通过包装一个类来增加功能.

行为型模式:(如何在对象之间通信)
1.职责链模式(CHAIN OF RESPONSIBILITY PATTERN)把请求从链中的一个对象传递到下一个对象,直到请求被响应.链中的每个对象都是"自治"的,他对其他对象一无所知,只判断他本身能不能满足请求,不能的话就转到下一个,但你必须知道链中的最后一个对象是哪一个.
2.命令模式(COMMAND PATTERN)用简单的对象表示软件命令的执行.他把一个申请特定操作的请求封装到一个对象,并给这个对象一个众所周知的接口.
3.解释器模式(INTERPRETER PATTERN)提供一种如何把语言元素包含在程序中的定义.
4.迭代器模式(ITERATOR PATTERN)提供一种顺序访问一个类中的一系列数据的方式,他允许使用一个标准接口顺序访问一个数据列表或集合,而又不需知道数据内部表示细节.
5.中介者模式(MEDIATOR PATTERN)定义了如何用一个对象简化对象之间的通信,使对象之间不必互相了解.
6.备忘录(MEMENTO PATTERN)定义了如何保存一个类实例的内容以便以后能恢复他
7.观察者模式(OBSERVER PATTERN)定义了一种把改动通知给多个对象的方式.
8.状态模式(STATE PATTERN)允许一个对象在其内部状态改变时修改他的行为.
9.策略模式(STRATEGY PATTERN)将算法封装到类里.
10.模板方法模式(TEMPLATE METHOD PATTERN)提供了算法的一个抽象定义.
11.访问者模式(VISITOR PATTERN)在不改变类的前提下,为类添加多种操作.