设计模式
文章平均质量分 94
靠谱的大钊
没啥写, 就这样
展开
-
结构性型模式概述02--适配器模式--桥接模式
文章目录适配器模式(Adapter模式)详解优点:缺点 :模式的结构与实现模式结构:模式的应用场景桥接模式(Bridge模式)详解桥接模式的定义与特点缺点:桥接模式的结构与实现模式的结构桥接模式的应用场景 适配器模式(Adapter模式)详解 模式的定义与特点: 定义: 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类结构模型和对象结构模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少原创 2021-06-08 20:00:04 · 118 阅读 · 2 评论 -
结构性型模式概述01--代理模式
结构性型模式概述: Java-JDK动态代理 详解(AOP) 动态代理是如何实现的?JDK Proxy 和 CGLib 有什么区别? 文章目录结构性型模式概述:[Java-JDK动态代理 详解(AOP)](https://blog.csdn.net/qq_44236958/article/details/115467106)[动态代理是如何实现的?JDK Proxy 和 CGLib 有什么区别?](https://blog.csdn.net/qq_44236958/article/details/11766原创 2021-06-07 14:45:42 · 92 阅读 · 0 评论 -
动态代理是如何实现的?JDK Proxy 和 CGLib 有什么区别?
动态代理是如何实现的?JDK Proxy 和 CGLib 有什么区别? 动态代理的重用功能是反射,反射机制是指程序在运行期间可以访问,检测和修改其本身状态或行为的一种能力,使用反射我们可以调用任意一个类对象,以及类对象中包含的属性及方法 但动态代理不止有反射一种实现方式,例如通过CGlib实现,==基于ASM(一个java字节码操作框架)==而非反射实现的.简单来说,动态代理是一种行为方式,而反射或者ASM只是它的一种实现手段而已 JDK Proxy 和 CGLib 的区别 JDK Proxy 和 CGLi转载 2021-06-07 14:43:14 · 127 阅读 · 0 评论 -
创建型模式03----建造者模式
建造者模式(Bulider模式) 相关优秀的文章—秒懂设计模式之建造者模式 文章目录建造者模式(Bulider模式)模式的定义和特点建造者定义:优点缺点模式的结构与实现模式的应用场景建造者模式和工厂模式的区别 在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然原创 2021-06-04 13:08:24 · 112 阅读 · 0 评论 -
创建型模式02----原型模型--工厂方法模式 --抽象工厂模式
文章目录原型模型定义:优点:缺点:原型模式的结构与实现模式的实现原型模式的引用场景创建型模式-工厂模式简单工厂模式优点:缺点:工厂方法模式优点:缺点:应用场景模式的结构和实现抽象工厂模式定义缺点:模式的结构与实现抽象工厂模式的应用场景扩展 原型模型 在系统中,存在大量相同或者相似的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生产对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。 定义: ==用一个已经创建的实例作为模型,通过复制该原型对象来创建一个和原型相同原创 2021-06-04 10:17:11 · 268 阅读 · 2 评论 -
创建型模式01----单例模式
创建型模式的特点和分类 创建型模式的关注点是"怎样创建对象",特点:将对象的创建与使用分离,这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成.就像我们去商场购买商品时,不需要知道商品是怎么生产出来一样,因为它们由专门的厂商生产。 创建型模式分为一下 单例模式: 某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有多利模式 原型模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例 工厂方法模式:定义一个用于创建产品的接口,由子原创 2021-06-02 11:50:09 · 101 阅读 · 0 评论 -
设计模式00----七大原则
设计模式只是实现了七大原则的具体方式,套用太多的设计模式只会陷入模式陷阱,最后代码写的凌乱不堪 在实际工作中很少会规定必须使用哪种设计模式,这样只会限制别人。不能为了使用设计模式而去做架构,而是有了做架构的需求后,发现它符合某一类设计模式的结构,在将两者结合。 设计模式要活学活用,不要生搬硬套,需要打下坚牢的程序设计语言的基础,夯实自己的编程思想,积累大量的时间经验,提高开发能力,目的为了让程序实现: 低耦合,高类聚,高复用,易维护,易扩展 需求驱动 设计模式是针对软件设计的,而软件设计是针对需求的,一原创 2021-06-01 15:27:50 · 166 阅读 · 0 评论 -
Votatile--JMM--单例模式
Votatile 文章目录VotatileJMMVotatile什么是JMMVolatile保证了可见性不保证原子性避免指令重排指令重排volatile可以避免指令重排单例模式饿汉式DCL懒汉式DCL懒汉式反射破环唯一性解决: 继续加锁但是双反射继续破环继续解决: 采用红略灯经行.加标志进行判定破环: 利用反射破环其私有权限枚举通过读取源码得值,反射不能破环枚举,利用枚举利用枚举注: 枚举的最终反编译源码 JMM Votatile Votatile是java虚拟机轻量级的同步机制 保证了可见性 不保证原子原创 2021-04-23 19:24:46 · 243 阅读 · 2 评论 -
Java-JDK动态代理(AOP)
Java-JDK动态代理(AOP)使用及实现原理分析 动态代理的应用SpringAOP实现原理 什么是动态代理? 使用JDK反射机制,创建对象的能力,创建的是代理类的对象,而不用你创建类,不用写java文件 动态:在程序执行时,调用JDK提供的方法才能创建代理类的对象 JDK动态代理,必须有接口,目标类必须实现接口,没有接口时需要使用cglib动态代理 知道动态代理能做什么 ? 在不改变原来的目标方法功能的前提下,可以在代理中增强自己的功能代码 1.什么是代理 代理:在我们生活之中就有体会,代购,中介,原创 2021-04-06 18:17:20 · 148 阅读 · 0 评论