参考:http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html#_Toc281750445
http://baike.baidu.com/link?url=OhPS9yyf4pqRbfzFkEusLhNVbyEtnmuuAJCfms-26pXHfHh80zRdiVbByBUSz1Xgv3yt7eNaoyXu7h0_vHt8_K
百度百科中关于设计模式的定义:一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
设计模式的本质是面向对象方法的实际运用,具体而言,是封装、继承、多态和关联的反复使用。
面向对象有几个原则:开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成/聚合复用原则、最小知识原则(也叫迪米特法则)。
开闭原则具有理想主义的色彩,它是面向对象设计的终极目标。其他几条,则可以看做是开闭原则的实现方法。设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。
开闭原则
里氏代换原则
依赖倒转原则
接口隔离原则
合成/聚合复用原则
最少知识原则(迪米特法则)
设计模式通常分为三类:创建型、结构型和行为型
创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式
——————————————————————————————————————————————————————————————————————————————
单例模式
单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”
单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
适用性:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
public class SingletonClass{
private static SingletonClass instance=null;
public static SingletonClass getInstance(){
if(instance==null){
synchronized(SingletonClass.class){
if(instance==null){
instance=new SingletonClass();
}
}
}
return instance;
}
private SingletonClass(){}
}