zoukankan      html  css  js  c++  java
  • 原生的servlet、单例多例、懒汉饿汉模式、静态内部类和枚举

    1. 什么是单例多例:

    单例:就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的

    多例:指每个请求用一个新的对象来处理,比如action; 

    2. 单例模式和多例模式说明:

      单例模式和多例模式属于对象模式。

      单例模式的对象在整个系统中只有一份,多例模式可以有多个实例。

      它们都不对外提供构造方法,即构造方法都为私有。

    3. 原生的servlet:

    <servlet>
    	<servlet-name>DisplayChart</servlet-name>
    	<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>DisplayChart</servlet-name>
    	<url-pattern>/DisplayChart</url-pattern>
    </servlet-mapping>
    

    4. 单例模式举例

    第一种:懒汉式(线程不安全,加上synchronized后线程安全)

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

    第二种:饿汉式(线程安全)

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

    第三种:静态内部类

    public class Singleton {
        private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
        }
        private Singleton (){}
        public static final Singleton getInstance() {
        return SingletonHolder.INSTANCE;
        }
    }
    

    第四种:枚举

    public enum Singleton {
        INSTANCE;
        public void whateverMethod() {
        }
    }
    

      

  • 相关阅读:
    我知道开发已经接近于成功了
    反射获取运行时属性值的替代方法
    Fix Visual Studio 2013 Razor CSHTML Intellisense in Class Library or Console Application
    领域模型
    UI设计心得
    ADO.NET EF 中的实体修改方法
    .net与com组件
    win8设置开机启动项
    编程架构
    禁止UITextField 使用粘贴复制功能
  • 原文地址:https://www.cnblogs.com/jihongtao/p/10467484.html
Copyright © 2011-2022 走看看