1. 싱글턴 패턴이란
싱글턴 패턴은 자바에서 가장 간단한 디자인 패턴 중 하나입니다. 싱글톤 패턴은 다음과 같습니다. 프로그램을 실행하는 동안 일부 클래스에는 최대 하나의 인스턴스 개체가 있습니다. 이 패턴에는 단일 객체만 생성되도록 하면서 자체 객체 생성을 담당하는 단일 클래스가 포함됩니다. 이 클래스는 클래스의 개체를 인스턴스화할 필요 없이 고유한 개체에 직접 액세스할 수 있는 방법을 제공합니다.
자바 관련 동영상 튜토리얼 추천: java 강좌
2. 싱글턴 모드 구현 아이디어
1. 인스턴스 객체를 정적화하고, 인스턴스 객체와 클래스 객체를 서로 바인딩하고, 직접 사용할 수 있습니다. 클래스 클래스 객체 액세스;
2. 생성자를 개인화하고 생성자를 통해 여러 인스턴스 생성을 금지합니다.
3. 이 클래스의 유일한 인스턴스를 반환하는 공용 정적 메서드를 제공합니다.
3. 싱글톤 모드의 장점과 단점
장점:
1. 메모리에 인스턴스가 하나만 있으므로 메모리 오버헤드가 줄어듭니다. 특히 인스턴스가 자주 생성되고 삭제됩니다.
2. 자원의 다중 점유를 피하세요.
단점:
인터페이스가 없고 상속될 수 없습니다. 이는 단일 책임 원칙과 충돌합니다. 클래스는 내부 논리에만 관심을 가져야 하며 외부에서 인스턴스화하는 방법은 고려하지 않습니다.
4. 싱글턴 모드를 작성하는 여러 가지 방법
1. 게으른 사람 스타일
package com.yx.singleton; /** * Singleton * <p>初级原型-懒汉式</> * <p>优点:用到时再初始化</> * <p>缺点:并发下会产生多个实例</> * <p>不推荐</> * * @author yx * @date 2019/11/24 12:18 */ public class Singleton { /** * 静态化实例对象 */ private static Singleton sInstance = null; /** * 私有构造方法 */ private Singleton() { } /** * 提供一个公共的静态方法, 用来返回这个类的唯一实例. * * @return 单例对象 */ public static Singleton getInstance() { if (sInstance == null) { sInstance = new Singleton(); } return sInstance; } }
위의 작성 방법을 사용하면 스레드가 안전하지 않은 동시 환경에 여러 인스턴스가 표시됩니다.
열거 방법
/** * EnumSingleton * 枚举类单例模式 * * <p>优点:不需要考虑序列化的问题;不需要考虑反射的问题</> * <p>缺点:所有的属性都必须在创建时指定, 也就意味着不能延迟加载; 并且使用枚举时占用的内存比静态变量的2倍还多</> * * @author yx * @date 2019/11/24 15:09 */ public enum EnumSingleton { INSTANCE }
더 많은 관련 기사를 보려면 다음을 방문하세요. Java 시작하기
위 내용은 자바의 싱글턴 패턴이란 무엇입니까? 장점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!