什么是设计模式
- 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
- 单例模式有两种方式:1.饿汉式 2.懒汉式。 演示饿汉式和懒汉式单例模式的实现。
步骤如下:
public class Single_ {
public static void main(String[] args) {
System.out.println(GirlFriend.getInstance());
GirlFriend Girl1 = GirlFriend.getInstance();
GirlFriend Girl2 = GirlFriend.getInstance();
System.out.println(Girl1);
System.out.println(Girl2);
}
}
class GirlFriend{
private String name;
private static GirlFriend gf = new GirlFriend("小何");
private GirlFriend(String name) {
this.name = name;
}
public static GirlFriend getInstance(){
return gf;
}
@Override
public String toString() {
return "GirlFriend{" +
"name='" + name + '\'' +
'}';
}
}
饿汉式代码总结:在类加载的时候就会创建对象,可能存在资源浪费问题。
public class Single_ {
public static void main(String[] args) {
System.out.println(GirlFriend.getInstance());
GirlFriend Girl1 = GirlFriend.getInstance();
GirlFriend Girl2 = GirlFriend.getInstance();
System.out.println(Girl1);
System.out.println(Girl2);
}
}
class GirlFriend{
private String name;
private static GirlFriend gf;
private GirlFriend(String name) {
this.name = name;
}
public static GirlFriend getInstance(){
if (gf == null){
gf = new GirlFriend("小何");
}
return gf;
}
@Override
public String toString() {
return "GirlFriend{" +
"name='" + name + '\'' +
'}';
}
}
懒汉式代码总结:存在线程安全问题,在学习了多线程之后会有对懒汉式代码的完善。
注:两种实例代码中区别代码已用红色标出。本人只是一个在学习过程中摸爬滚打的小白,如果文中有错误欢迎各位指出。