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);
        }
    }
  • 相关阅读:
    bzoj 1030 [JSOI2007]文本生成器
    Swift 学习笔记 (闭包)
    Swift 学习笔记 (函数)
    HTML 学习笔记 JQueryUI(Interactions,Widgets)
    HTML 学习笔记 JQuery(表单,表格 操作)
    HTML 学习笔记 JQuery(animation)
    HTML 学习笔记 JQuery(盒子操作)
    HTML 学习笔记 JQuery(事件)
    HTML 学习笔记 JQuery(DOM 操作3)
    HTML 学习笔记 JQuery(DOM 操作2)
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7340656.html
Copyright © 2011-2022 走看看