600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java设计模式中单例模式讲解

java设计模式中单例模式讲解

时间:2021-04-18 06:59:11

相关推荐

java设计模式中单例模式讲解

Java|java教程

java,设计模式,模式

Java-java教程

学习到java一共有23种设计模式,设计模式是被大多数人知晓,反复使用,约定俗成的代码经验总结。每种设计模式都代表了在项目中会重复发生的问题,所以合理的运用设计模式可以完美的解决很多问题。

jpeg源码,如何安装ubuntu软件,墨西哥爬虫天堂电影,,松岗seo网站lzw

学习java的设计模式是很有必要的。虽然在面向对象还没学习到继承和接口,但是23中设计模式中的单例模式已经可以了解了。

易语言模拟点击外部按钮源码,ubuntu 快捷打开终端,tomcat添加加载项目,屏幕快照爬虫,wnmp php5.6,seo竞价优化seo博客lzw

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。具体有两种表现形式:

拍卖系统源码asp,vscode历史还原,ubuntu安装选择语言,tomcat dubbox,sqlite导出txt,服务器 和云服务器,eclipse 插件开发 代码,微前端框架 选择,python爬虫系统设计,猫眼php,seo大公司,彩票合买代购网站源码,关于美食网页制作代码,html5 模板 国外,app活动页面素材下载,表单管理系统,易语言子程序返回值lzw

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 { 5public static void main(String[] args) 6{ 7 Singleton_2Demo a=Singleton_2Demo.getInstance(); 8} 9 }10 11 class Singleton_2Demo12 {13private Singleton_2Demo(){}14private static Singleton_2Demo a=new Singleton_2Demo();15public 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();} }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。