Java基础之:单例模式

Java基础之:单例模式 设计模式

设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式 。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。

单例模式

对于一个类而言,外部只能获取其一个实例。

实现步骤:

1) 构造器私有化

2) 类的内部创建对象

3) 向外暴露一个静态的公共方法。getDog,getCat。

简单案例

package codeBlock; ​ public class Singleton { ​ public static void main(String[] args) { Dog dog1 = Dog.getDog(); Dog dog2 = Dog.getDog(); System.out.println(dog1.getName()); //旺财 System.out.println(dog2.getName()); //旺财 System.out.println(dog2 == dog1); //true Cat cat1 = Cat.getCat(); Cat cat2 = Cat.getCat(); System.out.println(cat1.getName()); //布偶 System.out.println(cat2.getName()); //布偶 System.out.println(cat2 == cat1); //true } ​ } ​ //饿汉模式:声明一个对象,将其初始化并作为一个静态属性,在外部需要此类对象时,直接返回此对象。 class Dog{ private String name; private static Dog dog = new Dog("旺财"); //静态属性,所以只有一个dog private Dog(String name) { this.name = name; } public static Dog getDog() { return dog; } public String getName() { return name; } ​ public void setName(String name) { this.name = name; } } ​ //懒汉模式:声明一个对象,并作为一个静态属性,在外部需要此类对象时将其初始化,再返回此对象。 class Cat{ private String name; private static Cat cat ; //静态属性,所以只有一个cat private Cat(String name) { this.name = name; } public static Cat getCat() { if(cat == null) { cat = new Cat("布偶"); } return cat; } public String getName() { return name; } ​ public void setName(String name) { this.name = name; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzjzwg.html