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

查看虚拟币行情的网站怎么做关键词优化排名公司

查看虚拟币行情的网站怎么做,关键词优化排名公司,wordpress 问答类主题,兰州app单例设计模式 目的(使用场景) 在实际开发下,会存在一种情况:某一种类在程序的整个生命周期中,只需要实例化一次就足够了。例如,系统数据类,由于操作系统只有一个,因此在程序初始化…

单例设计模式

目的(使用场景)

在实际开发下,会存在一种情况:某一种类在程序的整个生命周期中,只需要实例化一次就足够了。例如,系统数据类,由于操作系统只有一个,因此在程序初始化时该类只需要实例化一次,之后的系统数据更改都是在这一个实例化对象中进行就可以。
在这里插入图片描述

功能

主要是一种控制实例化对象产生个数的设计操作。

方法

  1. 禁止主程序类中通过 new 实例化对象
    正常来说,定义了类之后,如果在主程序类之中利用 new 进行实例化的话,其个数是无法进行限制的。
class Singleton {public void print() {System.out .println("Hello,World")}
}
public class JavaDemo {public static void main(String args[]) {Singleton instanceA = new Singleton();Singleton instanceB = new Singleton();Singleton instanceC = new Singleton();instanceA.print();instanceB.print();instanceC.print();}
}

那么首先就应该禁止单例类在主程序类中的实例化,我们知道,在主程序中的实例化是通过调用构造方法来实现的。而所有的类又默认提供的无参构造,因此首先应在类定义中,私有化构造方法
private Singleton() {} // 构造方法私有化
这样,我们在若依然主程序类中使用 new 来实例化对象时,就会报错

错误: Singleton() 可以在 Singleton 中访问 private
instance = new Singleton();

  1. 实例化放在单例类中进行
    无法在外部类中直接使用 new 进行实例化后,实例化过程只能放在自身类中进行,因此可以定义一个私有化成员属性,即声明一个单例类引用。
    private Singleton instance;
    但外部类依然要有途径来进行访问,因此可以使用 static 属性进行标注,
    private static Singleton instance;
    又要求控制其数量只能有一个,因此使用 final 定义
    private static final Singleton INSTANCE = new Singleton();

该引用的赋值放在一个方法中,该方法也要定义为类方法:

public static Singleton getInstance() {return INSTANCE;
}

两种单例设计模式

饿汉式

在系统加载类的时候就会自动提供有 Singleton 类的实例化对象。
方法示例中所实现的就是饿汉式

class Singleton {private static final Singleton INSTANCE = new Singleton();private Singleton() {} // 构造方法私有化public static Singleton getInstance() {return INSTANCE;
}public void print() {System.out .println("Hello,World")}}
public class JavaDemo {public static void main(String args[]) {Singleton instance = null; // 仍可声明对象instance = Singleton.getInstance();instance.print();}
}

懒汉式

在第一次使用的时候才进行实例化对象处理.
这样在定义时就不能使用 final 来限制个数了,而是在获取实例方法中增加判断来限制个数。

class Singleton {private static  Singleton instance;private Singleton() {} // 构造方法私有化public static Singleton getInstance() {if (instance == null){ // 第一次使用instance = new Singleton() ; // 实例化对象}return instance;
}public void print() {System.out .println("Hello,World")}}
public class JavaDemo {public static void main(String args[]) {Singleton instance = null; // 仍可声明对象instance = Singleton.getInstance();instance.print();}
}

面试题:编写一个Singleton程序,并说明其主要特点?

  • 代码如上,可以把懒汉式(后面需要考虑到线程同步问题) 和饿汉式都写上;
  • 特点:构造方法私有化,类内部提供 static 方法获取实例化对象,这样不管外部如何操作永远都只有一个实例化对象提供。

多例设计模式

多例设计指的是可以保留有多个实例化对象,例如:如果现在要定义一个描述性别的类,那么该对象只有两个:男、 女。或者描述颜色基色的类,可以使用: 红色、绿色、蓝色。这种情况下可以利用多例设计来解决。

class Color { // 定义描述颜色的类private static final Color RED = new Color("红色");private static final Color GREEN = new Color("绿色");private static final Color BLUE = new Color("蓝色");private String title;private Color(String title) { // 构造方法私有化this.title = title;}public static Color getInstance(String color){switch(color){case "red": return RED;case "green": return GREEN;case "blue" : return BLUE;default : return null;}}public String toString(){return this.title;}
}
public class JavaDemo {public static void main(String args[]) {Color c = Color.getInstance("green");System.out.println(c);}
}

多例设计与单例设计的本质是相同的,一定都会在内部提供有 static 方法以返回实例化对象。

http://www.yayakq.cn/news/480911/

相关文章:

  • 汽车城网站建设方案企业门户网站数据库设计
  • 温州做美食网站公司宣传册设计与制作公司
  • 可视化网站开发平台什么语言网站比较安全
  • 深圳 做网站 互联企业邮箱注册申请官网
  • 湖南网站制作哪家专业南宁seo霸屏
  • 怎样网站设计wordpress腾讯云
  • 合肥滨湖建设指挥部网站湛江网络
  • 洪梅镇网站建设嘉兴高端网站定制
  • 免费网站注册免费创建网站dw做网站背景图片设置
  • 360优化大师官方网站wordpress几种版本
  • 合肥网络公司seo建站四川网站建设贴吧
  • 如何修改单页网站dw网页制作步骤视频
  • 济南网站建设第六网建做网站,就上凡科建站
  • 昌平电子网站建设网站禁止访问怎么解除
  • 网页设计网站哪个公司好网站列表页是啥
  • 先注册域名后建设网站可以吗前端兼职一个静态页面报价
  • 电子购物网站建设视频在线做六级阅读网站
  • 营销型网站建设概述网站首页快照怎么做
  • ae模板下载网站wordpress火车头接口定时
  • 有关学校网站建设策划书响应式网站 html
  • 网站建设需要域名还有什么宁国市网站关键词优化外包
  • 谷歌有趣的网站把货卖到国外有哪些平台
  • 当阳网站建设关于门户网站建设方案
  • 惠州做网站建设价格建设厅的工程造价网站
  • 网站 keyword title 字数网站建设和维护工作总结
  • 赣州做网站建设wordpress显示作者
  • 专门做创意桌椅的网站wordpress调用幻灯片
  • 吉首市建设局官方网站网站设计怎么算侵权
  • 微信怎么做淘客网站公司黄页查询
  • 东莞本地招聘网站漳州网站建设点击博大选