当前位置: 首页 > wzjs >正文

什么是网站快照河南宝盈建设集团有限公司网站

什么是网站快照,河南宝盈建设集团有限公司网站,如何给一个公司做网站,wordpress首页如何添加模块4.3、单例设计模式 (重量级)什么是设计模式?静态方法和属性的经典使用设计模式是在大量的实践中总结和理论化之后优选的代码结构,编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,…

4.3、单例设计模式 (重量级)

  • 什么是设计模式?

    • 静态方法和属性的经典使用

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

  • 什么是单例模式?

    • 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类,只能存在一个对象实例,并且该类只能提供一个取得其对象实例的方法

    • 单例设计模式有两种:1) 饿汉式 2)懒汉式


4.3.1、饿汉式
  • 饿汉式实现步骤如下:

  1. 构造器私有化 --------> 防止直接new对象

  2. 类的内部创建对象------------>该对象是static用于后面方法对 对象的调用

  3. 向外暴露一个静态的公共方法。-------------------------> getInstance

  • 代码示例:

public class text08 {public static void main(String[] args) {GrilFriend instance = GrilFriend.getInstance();System.out.println(instance);}
}
​
//只能有一个女朋友!
class GrilFriend{private String name;
​//2、在内部创建对象private static GrilFriend gf = new GrilFriend("小花花");
​// 1、构造器私有化private GrilFriend(String name) {this.name = name;}
​//3、向外暴露一个静态的公共方法public static GrilFriend getInstance() {return gf;}
​@Overridepublic String toString() {return "GrilFriend{" +"name='" + name + '\'' +'}';}
}

输出:

GrilFriend{name='小花花'}    

个人总结:

  1. 为什么叫饿汉式?

    可以理解为,类的内部对象,在类加载的时候,就可能创建好了,显得很着急,所以叫饿汉式。

  2. 如果两次调用返回gf对象的静态方法,返回的地址是一样的吗?为什么?

    答:一样!

  3. 需要注意:

    1、这里其实我们可以发现关系很紧密,因为单例模式只允许一个对象实例,所以要把构造器私有化,构造器私有化了,还要保证一个对象实例,就需要在对象的内部创建,并且用static修饰,以便于后面静态方法的调用(静态只能调用静态)。

    2、如果两个都不加static,那么岂不是我又可以在外面创建对象去调用了

4.3.2、懒汉式

为了避免饿汉式,可能创建了对象,但是没用这种资源浪费,引出了懒汉式。

  • 步骤:

    • 1、构造器私有化

    • 2、定义一个static静态属性对象

    • 3、提供一个public的static方法,可以返回一个Cat对象

    • 4、懒汉式,只有当用户使用getInstance时,才返回cat对象,后面再次调用时,会返回上次创建的cat对象,从而保证单例

代码示例:

public class text09 {public static void main(String[] args) {Cat instance = Cat.getInstance();System.out.println(instance);}
}
​
class Cat{private String name;private static Cat cat;
​//步骤//1、构造器私有化//2、定义一个static静态属性对象//3、提供一个public的static方法,可以返回一个Cat对象//4、懒汉式,只有当用户使用getInstance时,才返回cat对象,后面再次调用时,会返回上次创建的cat对象,从而保证单例private Cat(String name){System.out.println("我是构造器");this.name = name;}
​public static Cat getInstance(){if(cat == null){cat = new Cat("cat");}return cat;}
​@Overridepublic String toString() {return "Cat{" +"name='" + name + '\'' +'}';}
}

与饿汉式的区别是不会因为调用某个静态变量,就去创建对象。

public static Cat getInstance(){
if(cat == null){
cat = new Cat("cat");
}
return cat;
}

因为这段代码的存在,所以不会因为调用某个静态属性就创建了对象。

  • 还可能会有疑问:因为getInstance方法 也是static修饰的,不会在类加载的时候就执行吗?

答: 被static修饰的静态成员会随着类的加载而加载,但是仅是去加载到 ”方法区“,在没有调用的时候,并不会去执行的。如果每次类加载的时候都自动执行方法,那岂不是乱套了。(个人理解)


4.3.3、饿汉式 VS 懒汉式
  1. 两者区别在于创建对象的时机不同,饿汉式是在类加载的时候创建的的。懒汉式是使用时才创建。

  2. 饿汉式的问题: 在类加载的时候就创建,可能存在资源的浪费

  3. 懒汉式的问题:线程安全问题。

  4. 在JavaSE标准类中,java.lang.Runtime就是经典的单例模式


以上是就是单例设计模式的学习记录笔记,欢迎小伙伴留言~~~ 


文章转载自:

http://0RnkSJBk.wxqmc.cn
http://8KH6vm2V.wxqmc.cn
http://JJ3PFFRd.wxqmc.cn
http://oqBz94fO.wxqmc.cn
http://RcYJtew3.wxqmc.cn
http://mHArgVoP.wxqmc.cn
http://ilJslqRK.wxqmc.cn
http://IyN4Vfs6.wxqmc.cn
http://LuaJRbQ6.wxqmc.cn
http://L2pkOijD.wxqmc.cn
http://mfJeFUpq.wxqmc.cn
http://JZ3wS5Mn.wxqmc.cn
http://U1w4JgC1.wxqmc.cn
http://qZSuTtmr.wxqmc.cn
http://daK1hmVm.wxqmc.cn
http://CsYHgCUk.wxqmc.cn
http://yUeD5dBE.wxqmc.cn
http://WOoVNCMb.wxqmc.cn
http://O8fhtGKj.wxqmc.cn
http://QgR8qcYw.wxqmc.cn
http://QVCLxQVQ.wxqmc.cn
http://JqLdZaVw.wxqmc.cn
http://PrjSAOJA.wxqmc.cn
http://P4LKXk6z.wxqmc.cn
http://VgoQweB5.wxqmc.cn
http://4mbOniuo.wxqmc.cn
http://4pPQ0hAu.wxqmc.cn
http://RfKON2lx.wxqmc.cn
http://Bwe0frPW.wxqmc.cn
http://aDdG45TC.wxqmc.cn
http://www.dtcms.com/wzjs/613928.html

相关文章:

  • 深圳网站制作的公司网络服务做品牌推广网站需要多少钱
  • 旅游网站开发文档wordpress 最新版本
  • 深圳app网站网站系统定制
  • 网站做淘宝客还行吗30岁学编程太晚了
  • 做食品企业网站的费用网站架构设计师薪酬
  • 企业网站制作的软件wordpress使用用户字体
  • 一_ 写出几种常见的网站开发语言_试述其特点在西宁做网站可以吗
  • 网站有限公司免费化工网站建设
  • 苏州网站建设公司哪个好程序员用的编程软件
  • c语言做网站账号登录系统东营信息港
  • 网站建设方案如何写湖北seo优化诊断
  • 打码网站建设网站代码优化方法
  • 建立一个网站要多久秋林 做网站
  • 商务类网站荆门城乡建设局网站
  • 网站建设优選宙斯站长农林网站建设
  • 做网站虚拟主机哪里有重庆旅游必去景点
  • 网站建设公司哪家好 运峰科技谁有企业邮箱
  • 专业网站的建设wordpress主题花园
  • 广州网站建设定制多少钱国家住房和城乡建设网站
  • 怎样更换网站模板监利网站
  • wordpress安装主题后不够渭南seo快速排名
  • 北海哪家做网站公司网站外包
  • 信阳网站建设费用wordpress .po文件
  • 网站项目整体思路凡科快图官网登录入口
  • 动态ip建网站鸿科经纬教网店运营推广
  • 做一个网站的费用安徽省建设工程信息网站进不了
  • 福州网站建设发布自己建设网站需要什么
  • 顺德手机网站设计咨询鞍山做网站或
  • 哪里做网站最好网站网站流量与广告费
  • 店铺logo图片大全外贸seo是什么意思