首页 > 其他分享 >单例模式

单例模式

时间:2023-05-27 11:55:05浏览次数:62  
标签:name getInstance person 模式 Person static 单例 public

1、创建一个类将无参构造器变成私有权限(有两种实现方式)

点击查看代码
package com.bh.test;

public class Person {
    //(2)
    //private static Person person;
    //将person变量定义成静态变量,因为getInstance()为静态方法只能调用静态变量
    private static Person person = new Person();
    private String name;
    private Person(){}
 //将构造器私有化后只能本类调用,所以通过一个public方法来调用构造器实现创建对象,别的类只需要调用这个方法就行,又因为别的类不能创建对象所以方法变成static修饰的静态,只需要类名.方法就行
    public static Person getInstance(){
       /*(2) 
       Person p = new Person();
        if (person == null){
            person = new Person();
        }*/
        return person;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}


2、测试调用
点击查看代码
package com.bh.test;

public class Test {
    public static void main(String[] args) {
        Person p1 = Person.getInstance();
        Person p2 = Person.getInstance();
        Person p3 = Person.getInstance();

        System.out.println(p1.getName());
        System.out.println(p2.getName());
        System.out.println(p3.getName());
    }
}

3、结果,可以看出三个对象创建都是同一个内存地址,这就是单例

标签:name,getInstance,person,模式,Person,static,单例,public
From: https://www.cnblogs.com/liangkuan/p/17436520.html

相关文章

  • 行业报告 | AIGC应用与实践展望报告:人工智能重塑内容产业的作业模式
    原创|BFT机器人前言Introduction不可否认AIGC的出现似乎已经让大家预见了Al应用的拐点,其创造性与智能性一夜之间刷新了大众认知。但去伪存真,在市场火爆的背后其真正的应用及商业价值几何,更待我们冷静地剖析。01概念重生:AIGC是内容生成方式一次进化缘起于GC,而归于AI,AIGC的关键是A......
  • 设计模式-观察者模式(Observer)
    一、 观察者(Observer)模式观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通......
  • 混合模式开发之原生App webview与H5交互
    快速实现 混合模式开发之原生Appwebview与H5交互,详情请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12550 效果图如下:  代码如下: #原生appwebview与H5交互实现####HTML代码部分```html<template><viewclass="content"><viewclass="text......
  • 设计模式-行为型设计模式
    责任链模式定义为请求创建一个接收此次请求的链适用场景一个请求的处理需要多个对象当中的一个或几个协作处理优点请求的发送者和接收者(请求的处理)解耦责任链可以动态组合缺点责任链太长或者处理时间过长,影响性能责任链有可能过多/**处理者--或者Approver*@author......
  • Simple Factory Pattern 简单工厂模式简介与 C# 示例【创建型】【设计模式来了】
     〇、简介1、什么是简单工厂模式?一句话解释:  客户类和工厂类严格分工,客户类只需知道怎么用,处理逻辑交给工厂类。简单工厂模式(SimpleFactoryPattern)是日常开发中常用的设计模式。其是一种简单的创建型模式,它通过一个工厂类来创建对象,客户端只需要知道如何使用工厂类,而不需......
  • 虚拟机VMware workstation net模式网络设置
    1.设置虚拟网络编辑器 网关ip 起止ip段2.更改centos(这里用的centos7.7)网络配置打开文件 ,这里的ens33各个机器可能不同,按实际来从上到下为ip,网关dns服务器,子网掩码 关闭ipv6设置固定ipv4(1)将BOOTPROTO设置为static或者none(2)编辑/etc/sysctl.conf配置,增加net.ipv6.c......
  • Chrome 护眼模式 - 黑暗模式 - 夜眼(Night Eye) 插件
    Chrome地址栏里输入:chrome://extensions/打开插件商城:......
  • 外观模式
    一、定义为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式跟代理模式类似,也更偏向于架构模式,常见于企业应用集成中,企业应用集成包括界面集成,业务流程集成(过程集成),控制集成(应用集成,API集成),数据集成四个层面,都与......
  • 一份采用单例模式编写,可读取配置文件的代码
    Confaccess.h#ifndef__CONFACCESS_H__#define__CONFACCESS_H__#include<pthread.h>#include<stdlib.h>#include<string>#include<map>classCConfAccess{public:staticCConfAccess*getInstance(){......
  • 批量删除rediskey(使用scan模式)
    importredisimportre#连接Redisr=redis.Redis(host='192.168.1.42',port=31448,db=0,password='Y11111')#需要删除的key的正则表达式pattern='data-*'#定义SCAN命令的游标初始值cursor=0#循环遍历Redis中符合正则表达式的key,并逐个删除while......