zoukankan      html  css  js  c++  java
  • 找工作--设计模式

    单例模式:
    作用:就是保证在应用程序的整个生命周期中,单例类的实例最多只能有一个。
    好处:类只实例化一次,省资源,节省开销,提高速度

    主要考察的是多线程下面单例模式的线程安全性问题
    第一种:饿汉式,在类被加载时,静态变量m_instance会被初始化,此时类的私有构造子会被调用

    public class Singleton {
        private static Singleton sin=new Singleton();    ///直接初始化一个实例对象
        private Singleton(){    ///private类型的构造函数,保证其他类对象不能直接new一个该对象的实例
        }
        public static Singleton getSin(){    ///该类唯一的一个public方法    
            return sin;
        }
    }
    

      上述代码中的一个缺点是该类加载的时候就会直接new 一个静态对象出来,当系统中这样的类较多时,会使得启动速度变慢 。现在流行的设计都是讲“延迟加载”,我们可以在第一次使用的时候才初始化第一个该类对象。所以这种适合在小系统。

    第二种:懒汉式,在首次使用对象的时候才进行创建,在下面给出懒汉式单例类实现里对静态工厂方法使用了同步化,以处理多线程环境

    public class Singleton {  
         private static Singleton instance;  
         private Singleton (){
             
         }   
         public static synchronized Singleton getInstance(){    //对获取实例的方法进行同步
           if (instance == null)     
             instance = new Singleton(); 
           return instance;
         }
     }
    

     上述代码中的一次锁住了一个方法, 这个粒度有点大 ,改进就是只锁住其中的new语句就OK。就是所谓的“双重锁”机制。

     多线程安全单例模式实例三(使用双重同步锁)

    public class Singleton {  
         private static Singleton instance;  
         private Singleton (){
         }   
         public static Singleton getInstance(){    //对获取实例的方法进行同步
           if (instance == null){
               synchronized(Singleton.class){
                   if (instance == null)
                       instance = new Singleton(); 
               }
           }
           return instance;
         }
     }
    

      参考:http://www.cnblogs.com/xudong-bupt/p/3433643.html

    适配器模式:

    作用:将一个类的接口转化成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    参考:http://visionsky.blog.51cto.com/733317/384607/

  • 相关阅读:
    OC_框架学习第一天
    OC_协议与分类的学习
    OC内存分析之retain与copy的简单测试示例
    OC类的使用,属性声明与复合类的实现示例
    PL/SQL破解方法(不需要注册码)
    C# Winform应用程序占用内存较大解决方法整理
    分享一个控制台版本《推箱子》小游戏,感兴趣的可以看看
    每天定时去女友空间留言工具(首选你要有个女友。!哈哈哈哈)
    单例模式(Singleton)详解——转载
    easyUI的datagrid控件日期列不能正确显示Json格式数据的解决方案
  • 原文地址:https://www.cnblogs.com/java-cjt/p/5203413.html
Copyright © 2011-2022 走看看