Java java지도 시간 Java 디자인 패턴에서 싱글톤의 힘에 대한 설명

Java 디자인 패턴에서 싱글톤의 힘에 대한 설명

Aug 13, 2017 am 09:34 AM
java 설명하다 디자인 패턴

이 글은 주로 자바의 싱글턴 디자인 패턴에 대한 관련 정보를 소개합니다. 여기에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

자바의 제곱근 자바의 제곱근 Aug 30, 2024 pm 04:26 PM

자바의 제곱근

자바의 완전수 자바의 완전수 Aug 30, 2024 pm 04:28 PM

자바의 완전수

Java의 난수 생성기 Java의 난수 생성기 Aug 30, 2024 pm 04:27 PM

Java의 난수 생성기

자바의 암스트롱 번호 자바의 암스트롱 번호 Aug 30, 2024 pm 04:26 PM

자바의 암스트롱 번호

자바의 웨카 자바의 웨카 Aug 30, 2024 pm 04:28 PM

자바의 웨카

Java의 스미스 번호 Java의 스미스 번호 Aug 30, 2024 pm 04:28 PM

Java의 스미스 번호

Java Spring 인터뷰 질문 Java Spring 인터뷰 질문 Aug 30, 2024 pm 04:29 PM

Java Spring 인터뷰 질문

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까?

See all articles