zoukankan      html  css  js  c++  java
  • 设计模式之一 ---单例模式

    class Person{
        private Person(){
        }
        
        //单例实现 1 饿汉实现方式
        private static Person person = new Person();    //单例,保证程序中只存在一个person对象        
        public static Person getInstance(){
            return person;
        }
        
        //单例实现 2 懒汉模式实现
        private static Person person_ = null;
        public static synchronized Person getInstance_(){    //synchronized:避免两个线程同时进入代码,而出现覆盖对象的情况
            if(person_==null){
                person_ = new Person();
                return person_;
            }else{
                return person_;
            }
        }
    
        // 单例模式,3 登记模式
        /*
         *这个模式主要特点是,每一个线程,都拥有自己的对象,需要时只拿自己生产的对象
         * 
         */
        private static ThreadLocal<Person> threadlocal = new ThreadLocal<Person>();
        public static Person getInstance_t(){
             Person p = threadlocal.get();
             if(p == null){
                Person ps = new Person();
                threadlocal.set(ps);
                return ps;
             }
             return p;
        }
        
        
        private String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        private int age;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }
  • 相关阅读:
    构建工具
    Ajax跨域问题
    Flex 布局教程:语法篇
    Linux常用命令
    JavaScript正则表达式
    jQuery基础(四)动画
    前端面试问题汇总(一)
    jQuery基础(三)事件
    JavaScript中的基本数据类型
    Django积木块二——邮箱
  • 原文地址:https://www.cnblogs.com/duwenlei/p/5099748.html
Copyright © 2011-2022 走看看