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

    一、单例模式和多例模式说明:

    1. 单例模式和多例模式属于对象模式。
    2. 单例模式的对象在整个系统中只有一份,多例模式可以有多个实例。
    3. 它们都不对外提供构造方法,即构造方法都为私有。
    4. 单例模式和多例模式的结构图如下所示:

    二、应用举例

    1. 单例模式举例:

    package com.solid.pattern;

    import Java.util.Locale;

    import java.util.ResourceBundle;

    /**

    * 单例模式

    * @author solid

    *

    */

    public class Singleton {

        private static Singleton singleton = new Singleton();

       

        private Singleton() {}

       

        public static Singleton getInstance() {

           return singleton;

        }

       

        /**

        * 获取配置文件的值

        * @param key

        */

        public void getMessage(String key) {

           Locale locale = new Locale(key);

           ResourceBundle res = ResourceBundle.getBundle("res_zh_CN");

           String message = res.getString(key);

           System.out.println(message);

        }

    }

    package com.solid.pattern;

    /**

    * 单例模式测试

    * @author solid

    *

    */

    public class TestSingleton {

     

        private static Singleton singleton;

       

        public static void main(String[] args) {

           singleton = Singleton.getInstance();

           singleton.getMessage("title");

        }

    }

    1. 多例模式举例:

    package com.solid.pattern;

    /**

    * 多例模式

    * @author solid

    *

    */

    public class Multiton {

     

        private static Multiton multi1 = new Multiton();

        private static Multiton multi2 = new Multiton();

       

        private Multiton() {}

       

        public static Multiton getInstance(int key) {

           if(key == 1) {

               return multi1;

           } else {

               return multi2;

           }

        }

       

        /**

        * 获取1—6之间的随机数

        */

        public void getValue() {

           int value = (int)(Math.random()*6+1);

           System.out.println(value);

        }

    }

    package com.solid.pattern;

    /**

    * 多例模式测试

    * @author solid

    *

    */

    public class TestMultiton {

        private static Multiton multi1;

        private static Multiton multi2;

        public static void main(String[] args) {

           multi1 = Multiton.getInstance(1);

           multi2 = Multiton.getInstance(2);

          

           multi1.getValue();

           multi2.getValue();

        }

    }

  • 相关阅读:
    div 和 span的区别
    div 和 span的区别
    javascript类的定义及成员修改
    C# bho操作dom 同时带有隐藏工具栏功能,菜单栏
    javascript类的定义及成员修改
    数据库原理8个例子sql语句
    数据库原理8个例子sql语句
    C++的声明和定义的出别
    C++的声明和定义的出别
    Visual Studio 添加图标和版本
  • 原文地址:https://www.cnblogs.com/WuXuanKun/p/5993289.html
Copyright © 2011-2022 走看看