CGB2108day17

这篇具有很好参考价值的文章主要介绍了CGB2108day17。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、设计模式

概念:是一些前人总结出来的值得学习的编程"套路",设计模式一共有23种

单例设计模式:确保代码中本类的实例只有一个

实现思路:

方案一:饿汉式

1)把本类的构造方法私有化—为了不让外界调用构造函数来创建对象

2)通过本类的构造方法创建对象,并把这个对象也私有化,为了防止外界调用

3)提供一个公共且静态的方法,返回刚刚创建好的对象

注意:公共方法需要设置成静态--需要跳过对象,通过类名直接调用这个返回本类对象的公共方法

方案二:饿汉式

延迟加载的思想:我们有的时候有些资源并不是需要第一时间就创建出来,所以需要延迟到需要时再创建,这样既可以提示性能,又可以节省资源

1)把本类的构造方法私有化--为了不让外界调用构造函数来创建对象

2)创建了一个本类类型的引用类型变量【这个变量后续用来保存创建出来的对象的地址值】

3)提供一个公共且静态的方法,返回刚刚创建好的对象

注意1:这个公共的方法里,需要做判断

1.如果变量的值为初始值null:说明之前没有创建过对象,创建对象后再将对象的地址值赋值给引用类型变量,并把它返回

2.如果引用类型的变量值不为null,说明:之前已经创建过对象了,这个引用类型变量保存就是地址值,本次不再新建对象,直接返回

注意2:由于有共享数据,并且多条语句操作这个single2,所以注意同步

二、注解

1.JDK自带的注解(5个)

2.元注解

@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})

表示被描述的注解的声明周期:注意值只能三选一

@Retention(RentionPolicy.RUNTIME/SOURCE/CLASS)

3.自定义注解

三、反射

1.反射的概念

当我们想要使用别人的东西的或者查看某些资源的时候,可以使用反射技术

自比如,开发时候,有时并不能直接看到源代码,也可以通过反射获取

2反射的前提:获取字节码对象

在Java中可以将对象分为两类:字节码对象和实例对象

字节码对象获取的三种方式:

1)类名.class

2)Class.forName(“目标的全路径”)

3)目标类对象.getClass()

注意:字节码对象是获取目标对象所有信息的入口

3.反射的常用方法

1)获取包对象:clazz.getPackage()

2)先获取包对象,再获取包对象的名字:clazz.getPackage().getName()

3)获取类名:

clazz.getName() --打印的是全路径名

clazz.getSimpleName() --打印的只有目标类的类名

4)获取目标类的所有方法:Method[] ms = clazz.getMethods();

 文章来源地址https://www.toymoban.com/news/detail-417934.html

到了这里,关于CGB2108day17的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 研磨设计模式day09原型模式

    目录 场景 代码实现 有何问题 解决方案 代码改造  模式讲解 原型与new 原型实例与克隆出来的实例 浅度克隆和深度克隆 原型模式的优缺点 思考 何时选用? 相关模式  场景 代码实现 定义订单接口  个人订单实现 企业订单实现 通用的订单处理 客户端使用 有何问题  简述:

    2024年02月11日
    浏览(33)
  • 研磨设计模式day11代理模式

    目录 场景 代码实现 ​编辑 解析 定义 代理模式调用示意图 代理模式的特点  本质  ​编辑何时选用  场景 我有一个订单类,包含订单数、用户名和商品名,有一个订单接口包含了对订单类的getter和setter 现在有一个需求,a创建的订单只能a修改,其他人无权修改 代码实现

    2024年02月10日
    浏览(36)
  • 研磨设计模式day13组合模式

    目录 场景 不用模式实现  代码实现  有何问题  解决方案 代码改造  组合模式优缺点 思考  何时选用 场景 不用模式实现  代码实现  叶子对象 组合对象 Client 有何问题  必须区分组合对象和叶子对象,并进行有区别的对待 解决方案 组合模式 定义: 思路:将组合对象和叶

    2024年02月11日
    浏览(42)
  • 研磨设计模式day12命令模式

    目录 定义 几个参数 场景描述 代码示例 参数化设置 命令模式的优点 本质  何时选用 定义 几个参数 Command:定义命令的接口。 ConcreteCommand:命令接口的实现对象。但不是真正实现,是通过接收者的功能来完成命令要执行的操作 Receiver:接收者。真正执行命令的对象。任何类都

    2024年02月11日
    浏览(40)
  • 研磨设计模式day14模板方法模式

    目录 场景 原有逻辑 有何问题 解决方案 解决思路  代码实现  重写示例 模板方法的优缺点 模板方法的本质  何时选用 场景 现在模拟一个场景,两个人要登录一个系统,一个是管理员一个是用户,这两个不同身份的登录是由后端对应的两个接口实现的,用户登录只需验证库

    2024年02月10日
    浏览(37)
  • 设计模式概念学习

    以下为学习时对各种设计模式的简单理解,还没有深入学习和实际应用,推荐1个 很棒的网站学习设计模式,每个模式都有遇到的痛点和解决的方法,还有2~3个应用场景,各种语言的代码示例,简明准确的UML类图,精美可爱的配图,推荐大家去看。 饿汉 构建时就创建 懒汉 单

    2024年02月09日
    浏览(33)
  • 设计模式概念

    设计模式是软件工程领域中常用的解决问题的经验总结和最佳实践。它们提供了一套被广泛接受的解决方案,用于处理常见的设计问题,并促进可重用、可扩展和易于维护的代码。 设计模式的主要目标是提高软件的可重用性、可扩展性和灵活性,同时降低代码的复杂性。它们

    2024年02月07日
    浏览(34)
  • day39 注解 设计模式(单例模式和工厂模式)

    @Target    @Target(ElementType.TYPE) @Target({                 ElementType.TYPE,                          ElementType.METHOD}) //确定自定义的注解的使用范围 type为类  method为方法  field为属性 @Retention @Retention()  //(不添加参数默认是class) @Retention(RetentionPolicy.CLASS)// 保留到

    2024年02月09日
    浏览(37)
  • 研磨设计模式day11观察者模式

    目录 场景 代码示例 定义 观察者模式的优缺点 本质 何时选用 简单变型-区别对待观察者 场景 我是一家报社,每当我发布一个新的报纸时,所有订阅我家报社的读者都可以接收到 代码示例 报纸对象 读者,也就是观察者 client  解析: 报社就是一个发布者,读者就是一个个订

    2024年02月11日
    浏览(41)
  • 我们在SqlSugar开发框架中,用到的一些设计模式

    我们在《SqlSugar开发框架》中,有时候都会根据一些需要引入一些设计模式,主要的目的是为了解决问题提供便利和代码重用等目的。而不是为用而用,我们的目的是解决问题,并在一定的场景下以水到渠成的方式处理。不过引入任何的设计模式,都会增加一定的学习难度,

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包