设计模式

创建型模式

简单工厂模式:根据传入参数,返回不同对象,比如一个鼠标工厂,传入1返回神州鼠标,传入2返回戴尔鼠标

工厂模式:鼠标工厂是个父类,有生产鼠标这个接口。 戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。 

抽象工厂模式:抽象工厂模式也就是不仅生产鼠标,同时生产键盘。 戴尔工厂,惠普工厂继承它,可以分别生产戴尔鼠标+戴尔键盘,和惠普鼠标+惠普键盘。 

  区别:简单工厂产出是一个产品(实例),抽象工厂产出是一个抽象(接口)。区别在于,若添加一个新的产品,前者是修改工厂,后者是创建新工厂(符合“闭合原则”)。

建设者模式:与工厂模式相比,建造者模式一般用来创建更为复杂的对象,而建造者模式中,建造者类一般只提供产品类中各个组件的建造,而将具体建造过程交付给导演类。由导演类负责将各个组件按照特定的规则组建为产品,然后将组建好的产品交付给客户端。

单例模式:主要是为了避免因为创建了多个实例造成资源的浪费,且多个实例由于多次调用容易导致结果出现错误,而使用单例模式能够保证整个应用中有且只有一个实例。

  饿汉模式和懒汉模式(双重校验)

  private SingletonLanHan() {}
    private static SingletonLanHan singletonLanHanFour;
    public static SingletonLanHan getSingletonLanHanFour() {
           if (singletonLanHanFour == null) {
           synchronized (SingletonLanHan.class) {
               if (singletonLanHanFour == null) {
               singletonLanHanFour = new SingletonLanHan();
               }
           }
           }
           return singletonLanHanFour;
   }
View Code

结构型模式

适配器模式:将一个类的接口转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以相互合作。这个定义还好,说适配器的功能就是把一个接口转成另一个接口。

代理模式( Proxy ):封装目标对象并限制外界对被代理对象的访问

行为型模式:

模板方法模式:定义:定义了一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的步骤。

观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

策略模式( Strategy ):定义个策略接口,不同的实现类提供不同的具体策略算法, 同时它们之间可以互相替换.

装饰者模式( Decorator ):动态的给一个对象添加一些额外的功能

责任链模式(Chain of Responsibility Pattern):拦截的类都实现统一接口,每个接收者都包含对下一个接收者的引用。将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。


spring的设计模式:

1.简单工厂 

2.工厂方法(Factory Method)

3.单例(Singleton) 

4.适配器(Adapter) 

6.代理(Proxy) 

.模板方法(Template Method) 

原文地址:https://www.cnblogs.com/vhyc/p/9917383.html