zoukankan      html  css  js  c++  java
  • java设计模式之单例设计模式和多例设计模式

    单例设计模式:构造方法私有化,在类的内部定义static属性和方法,利用static方法来取得本类的实例化对象;无论外部产生多少个实例化对象,本质上只有一个实例化对象

    饿汉式单例设计

    class Singleton{
        private static final Singleton INSTANCE = new Singleton();//产生一个实例化对象
        private Singleton(){}//封装构造方法
        public static Singleton getInstance(){
            return INSTANCE;//取得实例化对象
        }
        public void print(){
            System.out.print("hello word");
        }
    }
    public class Test{
        public static void main(String args[]){
            Singleton s = Singleton.getInstance();//无论调用多少次getInstance()方法,产生的实例化对象都是相同的
            s.print();
        }
    }

    懒汉式设计模式

    class Singleton{
        private static final Singleton INSTANCE;//定义一个未实例化的本类对象
        private Singleton(){}//封装构造方法
        public static Singleton getInstance(){
            if(INSTANCE == null){  
                INSTANCE = new Singleton();
            }
            return INSTANCE;//取得实例化对象
        }
        public void print(){
            System.out.print("hello word");
        }
    }
    public class Test{
        public static void main(String args[]){
            Singleton s = Singleton.getInstance();//无论调用多少次getInstance()方法,产生的实例化对象都是相同的
            s.print();
        }
    }

    多例设计模式:构造方法私有化,产生特定个数对象

    class Sex{
        private String sex;
        private static final Sex MAN = new Sex("男");
        private static final Sex WOMAN = new Sex("女");
        private Sex(String sex){
            this.sex = sex;
        }
        public static Sex getInstance(int ch){
            switch(ch){
                case 1:
                    return MAN;
                case 2:
                    return WOMAN;
                default:
                    return null;
            }
        }
        public String toString(){
            return sex;
        }
    }
    public class Test{
        public static void main(String args[]){
            Sex s = Sex.getInstance(1);
            System.out.println(s);
        }
    }
  • 相关阅读:
    json2.js和wcf传递Date对象问题
    使用WebClient发送POST请求
    我也质疑下petshop
    sql server 2005 游标使用小例
    关于SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
    小错误大麻烦
    SQL Server启动出现“指定的服务未安装”的解决方法
    非常不错的一个网站
    objectdatasource 未能找到带参数的非泛型方法
    SQLServer日志文件收缩
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7340656.html
Copyright © 2011-2022 走看看