이 글은 주로 자바의 싱글턴 디자인 패턴에 대한 관련 정보를 소개합니다. 여기에서는 Bad Guy 모드와 게으른 모드에 대해 설명합니다. 필요한 친구들은
자바의 싱글턴 디자인 패턴
을 참고하세요. ideas
디자인 패턴이란 무엇인가요? 오늘은 처음으로 디자인 패턴을 정식으로 배우는 초심자입니다. 디자인 패턴이 무엇인지 이해하는 것이 중요하다고 생각하는데, 디자인 패턴이 무엇인가요?
디자인 패턴: 문제 해결을 위한 효과적인 아이디어.
디자인 패턴: 특정 환경에서 특정 반복 문제를 해결하는 데 사용되는 솔루션
제가 이해한 바에 따르면 전임자들은 소프트웨어 디자인 중에 일종의 문제에 직면했고 효과적인 검증된 솔루션 세트를 요약했습니다.
디자인 패턴의 장점:
1. 디자인 패턴은 비교적 우수한 솔루션입니다. 많은 문제가 전형적이고 대표적인 문제이므로 처음부터 문제를 해결할 필요가 없습니다. 거인의 어깨 위에 서서 이 솔루션을 재사용하세요.
2. 디자인 패턴은 전문가들이 사용하는 일반적인 용어가 되었으며, 이를 이해하지 못하는 것은 의사소통에 도움이 되지 않습니다.
3. 설계한 시스템을 더욱 전문적으로 만들고 시스템에 더 나은 구조를 제공할 수 있습니다.
디자인 패턴 1~~싱글 케이스
싱글 혜택 디자인 패턴은 메모리에 하나의 클래스만 존재할 수 있다는 문제를 해결하기 위해 사용됩니다. 예를 들어, 마작 게임을 하면서 주사위를 던지려고 할 때 첫 번째 사람이 표시된 숫자를 잃으면 그 뒤에 있는 사람도 그 숫자를 사용하게 됩니다. 주사위 클래스의 복사본은 하나만 메모리에 허용됩니다. 이러한 문제는 단일 케이스 설계 솔루션으로 해결되어야 합니다.
첫 번째 유형: 배고픈 중국 스타일, 먼저 혼자 나옵니다. 속도는 빠르지만 메모리를 많이 차지합니다.
public class Single { private final static Single s = new Single(); //类只能有一个故私有化构造方法,不让外面new对象 private Single(){ } //工厂方法的命名规范 getinstance //当外面没办法new对象时候,我们对像给外面调要自己来new // 当没发new 对象时候,必须是静态方法,给外界使用。 public static Single getInstance(){ return s; } }
두 번째 유형: Lazy 스타일
//懒汉式 public class Single2 { // 先步开内存,需要用的时候才new private static Single2 s=null; private Single2(){ } // synchronized 用来防多线程时。第一个和第二个线程抢资源都会进入s==null, 时new 两次。 public synchronized static Single2 getInstance(){ if(s==null){ s = new Single2(); } return s; } }
synchronized는 getInstance 메소드에 속하는 잠금으로 간주됩니다. 메소드가 정적이면 잠금은 클래스 템플릿에 속합니다. 메소드가 객체에서 호출되면 잠금은 객체에 속합니다.
위 내용은 Java 디자인 패턴에서 싱글톤의 힘에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!