zoukankan      html  css  js  c++  java
  • 在JAVA和android中常用的单列模式

    在很多开发中,项目为了节约资源,都把一个类的构造函数变为私有化,这样整个项目中就不能创建多个实例,这样的方法我们称为单例模式

    现在通过代码来简介下这个单例模式:

    在新建一个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

    转载请注明

  • 相关阅读:
    HTML特殊字符编码对照表
    在Echarts 柱形图的单击事件中写入自定义的参数
    IIS7.5支持解析读取.json文件数据 -- 问题
    VS SVN
    WebApi 跨域问题解决方案:CORS
    SQL Server2012中的SequenceNumber尝试
    Oracle数据类型与.NET中的对应关系
    MongoDB 学习 --转
    MongoDB 基础
    CSS魔法堂:你真的懂text-align吗?
  • 原文地址:https://www.cnblogs.com/taofudemo/p/4621817.html
Copyright © 2011-2022 走看看