首页 > 编程语言 >Java——设计模式

Java——设计模式

时间:2023-11-22 20:22:05浏览次数:32  
标签:Java 饿汉 模式 工厂 单例 设计模式

一、概述

设计模式是历代程序员总结出的经验

二、分类

创建型模式:简单工厂模式

      工厂方法模式

      单例模式:饿汉式(开发)

           懒汉式(面试)

行为型模式

结构型模式

三、简单工厂模式

  一个工厂中可以创建很多各种各样的对象

  缺陷:如果有新的对象的时候,需要修改很多类。一般情况下,工厂类是不轻易修改的

 

四、工厂方法模式

  每个对象都是通过自己的工厂创建出来的

  

 

五、单例模式

  指的是程序在运行过程中,类内存中有且仅有一个对象

  前提:构造方法私有化,为了不让外界随意的创建对象

  饿汉式

    会提前的new出来

    

  懒汉式

    不会提前new出来,涉及到线程安全的问题,写的时候要加上synchronized关键字

  

 

标签:Java,饿汉,模式,工厂,单例,设计模式
From: https://www.cnblogs.com/black-rosebush/p/17850202.html

相关文章

  • java时间截和日期格式相互转换的方法
    1.日期格式图片展示2.时间戳图片展示 ......
  • 访问浪潮BMC旧版bmc时java问题处理
    2018年的服务器,用win11打开浪潮bmc的jnlp文件访问kvm时提示,“未签名的应用程序请求系统进行无限制访问”1、更换旧版jdk版本2、如坚持使用新版jdk,可尝试以下方法:1)用记事本打开以下文件C:\ProgramFiles(x86)\Java\jre-1.8\lib\security\java.security找到以下内容jdk.jar.disabled......
  • Reflect API:每个 JavaScript 开发人员都需要的瑞士军刀
    前言您是否曾经希望拥有一个神奇的工具包,可以让您像超级英雄一样控制JavaScript对象?向ReflectAPI打个招呼吧,它是ES6中引入的一个新的全局对象,它能够处理简单的代码操作。它是每个现代JavaScript开发人员都需要的瑞士军刀!......
  • JavaScript获取几天前(后)的日期
    /***获取当前日期几天前的日期*n为整数*/getAgoDay(n){letdate=newDate()letseperator="-"letnewDate=newDate(date.getTime()-n*24*60*60*1000)letyear=newDate.getFullYear()letmonth=newDate.getMonth()+1let......
  • JAVA 截取字符串的几种方法
    使用String类的substring()方法可以使用substring()方法来截取字符串中的一部分,它需要传入两个参数,第一个参数是起始位置,第二个参数是结束位置(不包含结束位置的字符)。例如:Stringstr="Hello,World!";Stringsubstr=str.substring(7,12);//World使用String类的s......
  • Java下跌,Kotlin闯进前15,后生可畏
    近年来,Android开发由Java转Kotlin似乎成为了一种潮流。谷歌甚至曾公开表示:“Android的开发将越来越以Kotlin为先。”当前,作为移动开发中Java的劲敌,Kotlin在Tiobe流行指数中表现强劲。根据TIOBE11月发布的编程语言排行榜,Kotlin以1.15%的占比位列第15,较之10月上升3位。而在今......
  • Java模版引擎注入(SSTI)漏洞研究
    一、FreeMarker模板注入安全风险0x1:FreeMarker简介FreeMarker是一款Java语言编写的模板引擎,它是一种基于模板和程序动态生成的数据,动态生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组......
  • Java泛型的历史背景与限制局限性
    Java泛型的语法简要提一下一些众所周知的泛型语法和类型擦除特性。泛型类泛型类中,类型变量用尖括号括起来,放在类名的后面,可以有多个类型变量。publicclassPair<T,U>{...}。类型变量在整个类定义中用于指定方法的返回类型以及字段和局部变量的类型。可以用具体的类......
  • java Calendar日历类型常见方法
    Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.000,格里高利历)的......
  • 设计模式学习每日总结-第十天
    第十天装饰模式:动态地给一个对象增加额外职责。有点:更灵活地增加子类缺点:小子类多,占资源  ......