zoukankan      html  css  js  c++  java
  • 设计模式

    创建型模式

    简单工厂模式:根据传入参数,返回不同对象,比如一个鼠标工厂,传入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) 

  • 相关阅读:
    今日总结
    今日总结
    今日总结
    本周总结
    今日总结
    今日总结
    今日总结
    今日总结
    今日总结
    vue3函数setUp和reactive函数详细讲解
  • 原文地址:https://www.cnblogs.com/vhyc/p/9917383.html
Copyright © 2011-2022 走看看