Java에는 총 23개의 디자인 패턴이 있다는 것을 배웠습니다. 디자인 패턴은 잘 알려져 있고 반복적으로 사용되며 일반적인 코드 경험 요약입니다. 각 디자인 패턴은 프로젝트에서 반복적으로 발생하게 될 문제를 나타내기 때문에 디자인 패턴을 합리적으로 사용하면 많은 문제를 완벽하게 해결할 수 있습니다.
Java 디자인 패턴을 배우는 것이 필요합니다. 객체지향에서는 상속과 인터페이스를 학습하지 않았지만, 23가지 디자인 패턴 중 싱글턴 패턴은 이미 이해가 가능합니다.
싱글턴은 일반적으로 사용되는 디자인 패턴입니다. Java 애플리케이션에서 싱글톤 객체는 JVM에 객체의 인스턴스가 하나만 존재하도록 보장할 수 있습니다. 구체적인 표현 형태는 두 가지가 있습니다.
package 面向对象;//单例设计模式第一种public class Singleton {public static void main(String[] args) { SingletonDemo a=SingletonDemo.getInstance(); } }class SingletonDemo {private static SingletonDemo a =null;private SingletonDemo(){}public static SingletonDemo getInstance() {if(a==null) { SingletonDemo a=new SingletonDemo(); }return a; } }
이렇게 하면 메소드가 호출될 때만 새로운 객체가 생성된다고 볼 수 있으나 멀티스레딩에서는 문제가 발생하기 쉬우므로 일반적으로 다음과 같은 방법을 사용합니다. 개발에 사용됩니다.
1 package 面向对象; 2 3 public class Singleton_2 4 { 5 public static void main(String[] args) 6 { 7 Singleton_2Demo a=Singleton_2Demo.getInstance(); 8 } 9 }10 11 class Singleton_2Demo12 {13 private Singleton_2Demo(){}14 private static Singleton_2Demo a=new Singleton_2Demo();15 public static Singleton_2Demo getInstance()16 {17 return a;18 }19 }
이 방법은 간단하고 멀티스레딩 문제를 고려할 필요가 없습니다
이 디자인 패턴을 사용하여 이전 연구에서 작성한 객체 지향 연습 문제를 조정하고 싱글턴을 구현했습니다. 무늬.
원본 코드:
package 面向对象; class Student { private String name;private int number;private String sex;private boolean learn;private String a; Student() { name="未知"; number=000; sex="未知"; learn=false; a="未知"; } public void setName(String name) { this.name=name; } public void setNumber(int number) { this.number=number; } public void setSex(String sex) { this.sex=sex; } public void setLearn(boolean learn) { this.learn=learn; } void scan() {if(this.learn==true) { a="在学习"; }else{ a="不在学习"; } System.out.print("姓名:"+this.name+" 学号:"+this.number+" 性别;"+this.sex+" 是否在学习:"+a); } } class Data { public static void main(String[] arg) { Student XiaoMin=new Student(); XiaoMin.setName("小明"); XiaoMin.setNumber(13023); XiaoMin.setSex("男"); XiaoMin.setLearn(true); XiaoMin.scan(); } }
단일 케이스 모드:
package 面向对象;//实现单例设计模式 class Student_1 { private String name;private int number;private String sex;private boolean learn;private String a; private Student_1() { name="未知"; number=000; sex="未知"; learn=false; a="未知"; } private static Student_1 b=new Student_1(); public static Student_1 getInstance() { return b; } public void setName(String name) { this.name=name; } public void setNumber(int number) { this.number=number; } public void setSex(String sex) { this.sex=sex; } public void setLearn(boolean learn) { this.learn=learn; } void scan() {if(this.learn==true) { a="在学习"; }else{ a="不在学习"; } System.out.print("姓名:"+this.name+" 学号:"+this.number+" 性别;"+this.sex+" 是否在学习:"+a); } } class Data_2 { public static void main(String[] arg) { Student_1 XiaoMin=Student_1.getInstance(); XiaoMin.setName("小王"); XiaoMin.setNumber(13023); XiaoMin.setSex("男"); XiaoMin.setLearn(true); XiaoMin.scan(); } }
위 내용은 자바 디자인 패턴의 싱글톤 패턴 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!