黑马程序员_单例设计模式

---------------------- android培训java培训、期待与您交流! ----------------------

/*
 * 单例设计模式:
 * 要设计一个单例的类,按照如下三步即可:
 * 这三步怎么用代码实现呢?
1,将构造函数私有化。private
2,在类中创建一个本类对象。private static
3,提供一个方法可以获取到该对象。public static。方法是静态,让它可以通过类名来调用。
 * */

public class SingleDemo {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Student stu1 = Student.getStudent();
  Student stu2 = Student.getStudent();
  System.out.println(stu1 == stu2);//打印结果显示:
  //创建的两个Student对象stu1、stu2,实际上是同一个对象。
  stu1.setAge(20);//Student类的其他set和get方法可以像普通类一样写。
  System.out.println(stu1.getAge());
  
  

 }

}
/*要让外部程序操作的始终是一个对象:
 * 加上私有构造方法,让外部程序只能通过类名来获取现成的对象。
 * 注意以上这句话:私有构造方法、现成的对象(定义在类中)、获取(public 的get方法)。
 * 代码: private static Student s = new Student();
      private Student(){}
      public static Student getStudent(){
  return s;
 }
 以上的三段代码,让Student类具备了单例的特性,这样,外部程序就不能再new 对象了。
 而能操作的对象只能是s。
 */
class Student{
 private int age;
 
 private static Student s = new Student();
 private Student(){}
 public static Student getStudent(){
  return s;
 }
 public void setAge(int age){
  this.age = age;
 }
 public int getAge(){
  return age;
 }
}

-----------------------------

/*
 * 单例设计模式方式二。
 * --------------
 * 第一种单例设计模式的写法:(饿汉式:先初始化对象)
 * 1,创建一个私有并静态的本类对象。
   2,建立一个私有的空参构造函数。
   3,建立一个公有并静态的返回本类对象的方法。
   代码实现如下:
   class Single{
     private static Single s = new Single();
     private Single(){}
     public static Single getInstance(){
      return s;
   }
   ---------------
   第二种单例设计模式的写法:(懒汉式。对象是被方法调用时才初始化,也叫对象的延时加载。)
   代码实现:
   class Single{
     private static Single s = null;
     private Single(){}
     public static Single getInstance(){
      if(s=null)
       s = new Single();
      return s;
   }
   synchronized改进:
      class Single{
     private static Single s = null;
     private Single(){}
     public static Single getInstance(){
      if(s=null){
       synchronized(Single.class)
       {
        if(s==null)
        s = new Single();
       }
      } 
      return s;
     }
   }
   ----
面试的考点:饿汉式和懒汉式,以及synchronized的锁问题,多线程相关。
 * */

---------------------- android培训java培训、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员 设计模式c 是指黑马程序员通过C语言实现设计模式的一门课程。设计模式是面向对象设计中经过实践和总结后的一种解决问题的方案。它是一种具体的设计思路,是编写高质量、易于理解、可维护和可扩展的代码的指导原则。在软件开发中,我们经常会遇到各种各样的问题,设计模式可以帮助我们更加灵活高效地解决这些问题。 黑马程序员设计模式C课程从理论讲解到实践操作,通过C语言来实现各种设计模式,帮助学员理解设计模式的原理和应用场景。通过学习该课程,学员可以提升自己的设计能力和编程水平,使得自己编写的代码更加优雅和可复用。 该课程主要包括以下几个部分:首先是介绍设计模式的基本概念和分类;然后是详细讲解每一种设计模式的原理、结构和应用场景;接着是通过具体的案例来演示如何在C语言中实现每一种设计模式;最后是实际项目实战,让学员能够将所学的设计模式应用到实际的软件开发中。 通过学习黑马程序员设计模式C课程,可以帮助开发人员更好地理解和应用设计模式,提高软件开发的质量和效率。无论是对于初学者还是有一定经验的开发人员来说,都可以从中获得实际的收益。设计模式是编写高质量代码的基石,掌握设计模式可以让我们在编程过程中更加得心应手,实现代码的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值