设计模式小结

来源:互联网 发布:携程国际业务部 知乎 编辑:程序博客网 时间:2024/06/09 16:39

1.工厂模式

简单工厂 基本上就是直接new对象的方式

工厂方法 判断类的方法参数,根据参数进行判断创建不同的对象

抽象工厂 根据创建接口,抽象类创建对象

2.单例模式

恶汉模式 如果是要线程安全,则只需加上synchronized即可。

class Singleton{
  private static Singleton instance = null;
  private Singleton(){}
  public static [synchronized] Singleton getInstance(){
    if(instance == null)
    {
      instance = new Singleton;
    }
    return instance;
   }
}

饱汉模式

class Singleton{
  private static Singleton instance = new Singleton();
  private Singleton(){}
  public static Singleton getInstance(){
    return instance;
   }
}

3.Builder模式 + Factory模式

工厂模式创建的是一个零件,Builder模式是在外部知道情况下创建的一个整体,

比如创建房子的过程先造地板,再造墙,再。。的过程。

4.原型模式 Prototype

创建一个原型,然后进行copy

5.Composite模式和Facade模式

组合模式和外观模式的区别:外观模式旨在创建一个统一的门面,比如CPU,内存的操作都通过键盘或者屏幕这个门面来提供统一的外观。

而组合模式则侧重点在总体和部分的关系。

6.Proxy - Decorator

代理模式和装饰着模式,主要区别是装饰者模式旨在装饰需要修改的类,则从构造函数中传递进想要装饰的目标进行装饰。

而代理模式则自己不想亲自出面,需要提供代理。所以需要改造的类是在内部进行new的,而不是从参数随时传入的。

7.Prototype 原型模式

当要创建的对象每次创建时比较复杂,比如费时或者耗费资源时,可以考虑创建一个原型,每次都进行拷贝过去即可。

8.Bridge模式

主要是将抽象和实现解耦,使二者独立变化。

比较鲜明的例子:

Java的JDBC使用了桥接模式,通过DriverManager来获取对应的Driver,
然后通过获取的Driver来执行相应的数据库操作动作。

9.Flyweight模式

享元模式,主要是提供共享数据的模式,比如文本文件中有很多可以共有的元素,数据库连接池(共享池)机制。

原创粉丝点击