Java单例模式示例 Java单例模式是Java中一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例。单例模式有以下特点:1、单例类只能有一个实例。2、单例类自己自己创建自己的唯一实例。3、单例类给所有其他对象提供这一实例。 懒汉式单例模式是一种常用的单例模式,下面是一个懒汉式单例模式的示例代码: ```java public class TestStream { private String name; // 姓名 public String getName() { return name; } public void setName(String name) { this.name = name; } // 1,该类只能有一个实例 private TestStream() {} // 私有无参构造方法 // 2,该类自行创建 // 2种方式 // private static final TestStream ts = new TestStream(); private static TestStream ts1 = null; // 3 这个类自动向整个系统提供这个实例 public synchronized static TestStream getTest() { if (ts1 == null) { ts1 = new TestStream(); } return ts1; } public void getInfo() { System.out.println("Output Message" + name); } } ``` 在上面的代码中,我们定义了一个TestStream类,该类只能有一个实例,并且该类自己自己创建自己的唯一实例,并提供给所有其他对象。 在Main方法中,我们使用了TestStream类的getTest()方法来获取实例,并进行了一些操作: ```java public class TestMain { public static void main(String[] args) { TestStream s = TestStream.getTest(); s.setName("赵志哲"); s.setName("代重庆"); s.setName("郭伟新"); System.out.println(s.getName()); System.out.println(s.getName()); System.out.println(s.getName()); TestStream s1 = TestStream.getTest(); s1.setName("赵志哲"); s1.setName("代重庆"); s1.setName("郭伟新"); System.out.println(s1.getName()); System.out.println(s1.getName()); System.out.println(s1.getName()); s.getInfo(); s1.getInfo(); if (s == s1) { System.out.println("创建的是同一个实例"); } else if (s != s1) { System.out.println("创建的不是同一个实例"); } else { System.out.println("Application Error"); } } } ``` 通过上面的代码,我们可以看到,单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。 单例模式的优点是: * 单例模式可以确保系统中只有一个实例,不会有多个实例竞争系统资源。 * 单例模式可以提供一个全局的访问点,让所有对象都可以访问这个实例。 单例模式的缺点是: * 单例模式可能会导致系统中的耦合度增加,因为所有对象都需要访问这个实例。 * 单例模式可能会导致系统中的并发问题,因为多个线程可能会同时访问这个实例。 单例模式是一种常见的设计模式,可以为面向对象的应用程序提供对象惟一的访问点,但需要注意它的优点和缺点,以便更好地使用单例模式。
- 粉丝: 11
- 资源: 972
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助