JAVA基础 类的设计模式 单例设计模式 代理模式(Proxy) 工厂模式

类的设计模式概述

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

一、单例设计模式(Singleton)

     所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对,某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。

单例设计模式写法一:饿汉式      管他啥时候用,先把对象造好再说

public class SingletonTest1{

  public static void main(String[ ] args){

    Bank bank1 = Bank.getInstance()  //step4 main函数中获取instance对象,由于instance是静态属性,自然就是唯一对象了

     }

  }

class Bank {

   private Bank(){     //step1  私有化构造器,不准main函数里面造bank对象

  }

   //step2  在类的内部用构造器创建Bank对象,赋值给类的静态私有Bank类型属性instance

   /*说明:由于单例设计模式要求只能存在一个Bank类对象,所以只有类属性,才是唯一,所以一定要是静态的。另外,外部没  法创建对象,只能通过类用静态方法调,所以这里必须是静态属性。*/

   private static Bank instance = new Bank();

    //step3 提供一个public静态方法,让main函数可以通过类从外部获取到instance对象(即bank类的唯一对象)

    //说明,如果不是静态方法,就必须在外面创建对象去调,然而,又不准外面创建对象,就死循环了

   public static Bank getInstance() { 

   return instance;

      }

}

单例设计模式写法二:懒汉式       先将属性赋值为null,到用的时候,才造对象

public class SingletonTest2{

  public static void main(String[ ] args){

    Bank bank1 = Bank.getInstance()  //step4 main函数中获取instance对象,由于instance是静态属性,自然就是唯一对象了

     }

  }

  • class Bank {
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值