设计模式:单例,模板

设计模式
    设计模式是在大量实践中总结和理论化之后优选的代码结构,编程风格和思考问题的方式
    像是经典的棋谱,不同棋局用不同棋谱,免去自己的再思考与摸索
    
    单例设计模式  
        静态方法与静态属性的经典使用
        单例:单个的实例
        单例模式:采取一定方法保证在整个软件系统中,对于某个类,只能存在一个对象/实例;并且该类只提供一个取得其对象实例的方法
        应用:有的类很占用资源,而且只要存在一个实例就够用了
            JavaSE的java.lang.Runtime就是单例模式  饿汉式
        2种方式:
            饿汉式            着急,只要类被加载,这个唯一对象就会被创建
                1 构造器私有化            防止直接new
                2 类内部创建对象        (注意不是在下面的方法中创建而是直接在类中创建)   
                                        修饰符一般是private static 这里的static是为了下面的方法可以用
                3 向外暴露一个静态的公共方法  是public static的,一般命名是getInstance,    
                                        可以调用多次getinstance,但是返回的是一个对象
                优势;没有线程安全问题 对于getInstance方法
                问题:不用这个对象,只是使用其中静态成分,也会创建,造成资源浪费(因为这个对象一般是重量级的)
                
            懒汉式            不着急,使用到这个对象,才创建
                1 构造器私有化
                2 定义一个私有静态属性的对象=null(赋值时,另一个类会被加载,可以用static代码块验证)
                3 提供一个公共的静态方法,可以返回对象   在其中判断属性是不是null, 是null,创建(调用构造器)返回对象,
                                                                                    不是null,直接返回对象
                优势:不会有资源浪费
                问题:有线程安全问题     对于getInstance方法
                懒惰初始化的单例模式可以解决安全问题  --》jvm/类加载
                双重检查锁实现单例模式可以解决安全问题--》jvm/JMM(方法本身没有问题,jvm有问题)

模板设计模式
    抽象类最佳实现
    需求:多个类,每个类做不同任务job,统计每个类完成任务的时间
    解决:(这里还利用了动态绑定)
        模板类(抽象方法job,普通方法jisuan调用job计算)(抽象类:防止创建父类对象)
        每个类重写job方法就行,就不用管计算的方法了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT 无法打开包括文件 “xxxx.h”: No such file or direcotry 提升控件后提示找不到头文件

问题复现 UI文件提升控件后,提示找不到头文件。 原因 Qt中的ui文件会经过moc编辑器生成ui_xxx.h头文件。 在主页面的ui文件中因为使用了提升的widget,所以ui的ui头文件因该包含自定义控件的头文件。但是头文件的路径可以看出已经错误了。 #include &…

圣诞节临近,外贸人怎么做才能让客户疯狂下单?

(1)提醒客户即将而至的节假日:圣诞节工厂会很忙,紧接着中国春节也快来了,给采购商制造紧张感! 建议在与海外采购商的沟通中善于运用各种技巧,可以告诉他们,因为假期临近、季节变化等…

消费数据可视化大屏,助力金融机构智慧运维

在今天的数字化时代,消费数据的可视化已经成为了一种重要的趋势。通过将消费数据以图表、图像等形式展现出来,可以帮助我们更直观地了解消费者的行为和趋势。同时,这也为企业提供了更多的分析和决策依据。无论是针对市场营销策略的制定&#…

在vscode下将ipynb文件转成markdown(.md文件)的方法

这里写自定义目录标题 写在最前面安装nbconvert工具vscode界面 or cmd终端 写在最前面 正常情况下,可以在vscode的ipynb界面点击上面的三个点,里面有export导出,可以选择直接输出html和pdf 但是没有markdown(.md文件)…

Docker配置镜像加速器

Ubuntu 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 sudo mkdir -p /etc/docker sudo t…

fmt与##__VA__ARGS__

在宏定义中,fmt是一个占位符,用于表示格式字符串。fmt可以是一个字符串字面量,也可以是一个参数。 而##__VA_ARGS__是一个可变参数宏定义的特殊标记,用于表示可变数量的额外参数。##是连接符,用于将前面的内容和后面的…

信号是怎么搞到电磁波上面去的呢?

在之前的文章中,我们曾多次讲到电磁波的美妙,但是有了电磁波就可以通信了吗? No,我们要把信息加载到电磁波上,这个电磁波就可以作为信息的载体来工作了。可是信号是怎么加载到电磁波上的呢? 今天我们一起…

特征与特征图的区别

1.特征图是什么? 特征图是指在卷积神经网络中,通过卷积操作从输入图像中提取出来的图像特征。在卷积神经网络中,每一层的输出都是一个三维张量,其中第三维表示特征图的数量。每个特征图都是由若干个卷积核对上一层的特征图进行卷…

【数据结构与算法篇】八种排序 (C++实现)

多种排序算法的Cpp实现 一. 排序的概念及其运用排序的概念 二. 一图速览常见排序三. 排序的C实现1> 直接插入排序2> 希尔排序希尔排序代码实现(希尔所实现)希尔排序代码实现(优化版) 3> 选择排序选择排序的代码实现(同时选出最大和最小的元素) 4> 堆排序堆排序的代…

multipath

目录 文章目录 目录什么是multipathmultipath配置文件demo1(最小化配置)demo2demo3字段解析 命令**案例:查看多路径设备的信息。(常用)****案例:刷新multipath状态**案例:-v2/-v3 打印信息案例:查看当前活动路径的设备信息案例&am…

第17章 匿名函数

第17.1节 匿名函数的基本语法 [捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 { // 函数体 }语法规则:lambda表达式可以看成是一般函数的函数名被略去,返回值使用了一个 -> 的形式表示。唯一与普通函数不同的是增加了“捕获列表”。 …

羊大师讲解鲜羊奶的营养价值

羊大师讲解鲜羊奶的营养价值 鲜羊奶是一种天然、营养丰富的食品,拥有独特的健康价值。它不仅具备高蛋白、低脂肪的特点,还富含各种维生素和矿物质,对人体健康有着卓越的贡献。今天,我们就来一探鲜羊奶的营养奥秘。 鲜羊奶的营养…

Data Linked UI

DataLinkedUl是一个Unity框架,它允许您在为您的应用程序创建用户界面时实现专业的数据驱动方法。使用此资产,您可以创建灵活的基于瓦片的任意大小的复杂接口系统。 核心功能: 灵活性-允许适应和调整数据变化,允许各种结构和功能配置,而不需要对现有系统进行重大破坏。 可伸…

AI封测需求强劲, AMD、英伟达等巨头将助推产业链增长 | 百能云芯

近期,超微(AMD)和英伟达(NVIDIA)相继发布了新一轮AI芯片,为封测产业链注入了新的活力。据业内人士透露,客户端对AI封测的需求愈发强劲,整体量能超过原先的估计,其中日月光…

我有才满足于自媒体行业的知识付费平台课程

行业资讯 实时行业热点新闻、企业动态资讯、社区热门话题,一榜打尽 通过图文、音频、视频、动态在内的多元媒介形式,致力于为企业提供多元化的资讯内容展示方式。 自定义咨询专栏,归类资讯内容,建立结构化内容体系 可以把资讯归…

循环使用接口返回的多值老大难?看我教你使用jmeter掌握72变!

有同学在用jmeter做接口测试的时候,经常会遇到这样一种情况: 就是一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值。 这种要怎么做呢? 有一定基础的人,可能第一反应就是先提取前一个接口返回…

公有云迁移研究——AWS Route53

大纲 1 什么是Route 532 Route 53能做些什么# 3 通过DNS托管来实现分流3.1 创建DNS托管3.2 对托管创建记录对流量进行分配 4 通过流量策略来对流量进行分流4.1 创建流量策略 5 对比两者的区别6 推荐 在给客户从本地机房往AWS迁移的过程中,我们接到如下需求&#xff…

RPC使用JDK动态代理

介绍 在 Java 动态代理机制中 InvocationHandler 接口和 Proxy 类是核心。Proxy类中使用频率最高的方法是:newProxyInstance() &#xff0c;这个方法主要用来生成一个代理对象。 public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,Inv…

mysql中year函数有什么用

YEAR()函数用于提取日期或日期时间值中的年份。可以用于提取DATE、DATETIME或TIMESTAMP列中的年份。 SELECT YEAR(date_column) FROM table;# 提取字符串中的数据SELECT YEAR(2023-07-19) FROM table_name;

华容道问题求解第一部分_思路即方案设计

一、前言 华容道是一种传统的益智游戏&#xff0c;通常由一个长方形木板和若干个方块组成。其中包括一个或多个不同颜色的方块&#xff08;也称为车块&#xff09;和其他大小相同的方块&#xff08;也称为障碍块&#xff09;。游戏的目标是将车块从木板的一个端点移动到另一个…