在很多开发中,项目为了节约资源,都把一个类的构造函数变为私有化,这样整个项目中就不能创建多个实例,这样的方法我们称为单例模式
现在通过代码来简介下这个单例模式:
在新建一个java项目后,创建一个实体类User.java,和测试类,main.java
代码如下:
1 public class User { 2 private static User user; 3 4 //添加该实例的属性 5 private String name; 6 private String sex; 7 private String age; 8 /** 9 * @return 10 * 初始化一个实例 11 */ 12 public static User getInstens(){ 13 if(user == null){ 14 user = new User(); 15 } 16 return user; 17 } 18 19 /** 20 *为了实现 整个项目中,该对象的实例只有一个(有利于节约资源),从而私有化该实例的构造方法 21 *这样就没办法在其他地方new 出一个实例 22 */ 23 private User(){ 24 25 } 26 27 public User getUser() { 28 return user; 29 } 30 public void setUser(User user) { 31 this.user = user; 32 } 33 public String getName() { 34 return name; 35 } 36 public void setName(String name) { 37 this.name = name; 38 } 39 public String getSex() { 40 return sex; 41 } 42 public void setSex(String sex) { 43 this.sex = sex; 44 } 45 public String getAge() { 46 return age; 47 } 48 public void setAge(String age) { 49 this.age = age; 50 } 51 52 }
再添加main代码来测试:
1 public class main { 2 public static void main(String ages[]) { 3 4 User user = User.getInstens(); 5 user.setName("单列模式"); 6 System.out.println(user.getName()); 7 } 8 }
这里就得main.java就可以直接通过User.getInstens()来拿到User 的实例对象。
而在整个项目中就可以保证 该实例只被创建一次,被多次使用;故称之为单例模式
原创版权 归掏富小牛所有http://www.cnblogs.com/taofudemo/p/4621817.html
转载请注明