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);
        }
    }
  • 相关阅读:
    log4j的终极封装
    工具:docs网页笔记,gitbook,离线网网页
    java数据类型转换的常见方法
    java小结
    java判定数据(对象)类型
    婚纱摄影小结
    挖矿病毒是真么植入的
    centos根目录扩容,home目录减小容量
    java小结
    javap的使用
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7340656.html
Copyright © 2011-2022 走看看