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();

        }

    }

  • 相关阅读:
    数字图像处理学习笔记(1)---位图的读写、几何变换、傅里叶变换、直方图均衡
    【C++】队列的实现
    【C++】一个简单栈的实现
    【Eclipse】Eclipse常用快捷键
    【Android】串口通信
    【Android SDK Manager】Android SDK Manager更新速度慢的一种解决方法
    class-dump 安装使用详解
    ios 给微信开发一个插件并安装到未越狱的手机上教程
    新建的亚马逊云服务器EC2 ping 不通 解决方案
    ubuntu服务器上提示 To run a command as administrator (user "root"), use "sudo <command>". See " 解决方案
  • 原文地址:https://www.cnblogs.com/WuXuanKun/p/5993289.html
Copyright © 2011-2022 走看看