设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
1、设计模式的分类:
总体来说设计模式分为3大类:
1)创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
2)结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
3)行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有2类:并发型模式和线程池模式。
2、设计模式的6大原则
1)开闭原则(Open Close Principle):对扩展开放,对修改关闭。
2)里氏代换原则(Liskov Substitution Principle)
3)依赖倒转原则(Dependence Inversion Principle):这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。
4)接口隔离原则(Interface Segregation Principle):使用多个隔离的借口来降低耦合度。
5)迪米特法则(最少知道原则)(Demeter Principle):低耦合,高内聚。
6)合成复用原则(Composite Reuse Principle):原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
3、常用设计模式
1)单例模式
/*
* 保证一个类仅有一个实例,仅提供一个访问它的全局访问点
*/
public class Singleton
{
private static Singleton instance;
private Singleton()
{
}
public static Singleton getIntance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
public static void main(String[] args)
{
Singleton sing1 = Singleton.getIntance();
Singleton sing2 = Singleton.getIntance();
System.out.println(sing1.hashCode()); // 31168322
System.out.println(sing2.hashCode()); // 31168322
}
}
设计模式实例:http://zz563143188.iteye.com/blog/1847029