面试连环炮系列(二十二):经常使用的设计模式有哪些

  1. 经常使用的设计模式有哪些,做用是什么
    设计模式一共23种,经常使用的设计模式有:html

    1. 工厂模式: 构建多个对象的工厂。
    2. 单例模式:单例类负责建立本身的对象,同时确保只有单个对象被建立
    3. 代理模式:代理其余类,加强原来类的功能。
    4. 外观模式:包装多个类的复杂性,对外提供统一的方法。
    5. 责任链模式:为了不请求发送者与多个请求处理者耦合在一块儿,将全部请求的处理者经过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。
  2. 单例模式的懒汉和饿汉模式你了解吗
    懒汉模式:太懒了,第一次用的时候才去实例化,适合使用量较小的状况。算法

public class Singleton {
    private Singleton() {
    }
    private static Singleton singleton = null;

    public static Singleton getInstance() {
        if (singleton == null) {
            singleton = new Singleton();
        }
        return singleton;
    }

}

饿汉模式:很勤快,类定义的时候就实例化了。线程安全的,适合访问量比较大的状况。设计模式

public class Singleton {  

    private Singleton(){ }
    private static final Singleton singleton = new Singleton();
    public static Singleton getInstance(){
        return singleton;
    }
}
  1. Spring框架用到了哪些设计模式安全

    1. 静态工厂方法: Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个惟一的标识来得到Bean对象,可是否是在传入参数后建立仍是传入参数前建立这个要根据具体状况来定。
    2. 单例模式:Spring提供了全局的访问点BeanFactory。但没有从构造器级别去控制单例,这是由于Spring管理的是是任意的Java对象。
    3. 代理模式:Spring AOP的实现原理就是动态代理和字节码操控。
    4. 适配器模式:将一个类的接口转换成客户但愿的另一个接口。Adapter模式使得本来因为接口不兼容而不能一块儿工做的那些类能够一块儿工做。Spring中在对于AOP的处理中有Adapter模式的例子。
    5. 模板方法:定义一个操做中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类能够不改变一个算法的结构便可重定义该算法的某些特定步骤,好比JdbcTemplate
  2. 你怎么选择合适的设计模式
    考虑设计模式怎么解决问题,找出与使用者问题相关的模式,研究模式如何相互关联,考虑设计中那些是可变的,尽量实现强内聚,松耦合。框架

参考(摘抄的文字版权属于原做者):

http://www.javashuo.com/article/p-gvbnwude-ka.html
http://c.biancheng.net/design_pattern/
http://www.javashuo.com/article/p-vnqbejmv-hc.htmlspa

相关文章
相关标签/搜索