当前位置: 首页 > 后端技术 > Java

java设计模式

时间:2023-04-01 20:29:19 Java

单例模式Hungrystyle和Lazystyle1、Hungrystyle①构造函数私有化(防止在类外直接创建(new))②在类内部直接创建对象③提供返回对象的publicstatic方法publicclassSingleTonTest{publicstaticvoidmain(String[]args){GrilFriend实例=GrilFriend.getInstance();GrilFriendinstance1=GrilFriend.getInstance();System.out.println(instance1==instance);}}classGrilFriend{privatestaticage=18privateStringname;私人静态GrilFriendgf=newGrilFriend("aa");privateGrilFriend(Stringname){System.out.println("构造函数执行...");这个.name=名字;}publicstaticGrilFriendgetInstance(){returngf;}}2.惰性单例模式①构造函数私有化(防止在类外直接创建(new))②定义一个静态对象属性③提供一个返回对象的public静态方法(如果没有创建对象,创建一个,返回对象④惰性风格,只有当用户使用getInstance方法时,才会返回对象,再次调用时返回上次创建的对象,从而保证了一个单例类GrilFriend{privatestaticage=18私有字符串名称;私人静态GrilFriendgf;privateGrilFriend(Stringname){System.out.println("构造函数执行完毕line...");this.name=name;}publicstaticGrilFriendgetInstance(){if(gf==null){gf=newGrilFriend("aa");}returngf;}}饿了么之间的主要区别两种方法就是创建对象的时机:hungry方法在类加载时创建对象实例,而lazy方法在使用时创建,hungry方法不存在线程安全问题,lazy方法有风格中存在线程安全问题(当同时调用多个线程时,会在创建对象之前先创建多个对象),饿风格有浪费资源的可能,懒风格不在JavaSE标准中class.java.lang.Runtime是经典的饿汉单例模式