-
yexindonglai@163.com
2022-03-01 12:02
设计模式
944°
0
单例模式的特点 1、保证在jvm中只有一个实例; 2、应用场景:servlet、springioc(默认单例)、连接池、线程池、枚举、常量; 3、优点:节省内存,重复使用,方便管理 4、缺点:有线程安全问题; 单例模式的分类 1、懒汉式:将单例对象设为静态属性并加上final修饰符,初始化单例类时就立即创建对象实例,天生线程安全;调用率高 2、饿汉式:将单例对象设为静态属性并加上final修饰符,初始化单例类时不会立即创建对象实例,而是在使用的时候才创建实例,使用懒加载功能;此方式是线程不安全的 3、内部静态类方式:新建一个内部类,将单例对象设为静态属
-
yexindonglai@163.com
2022-03-01 12:01
设计模式
996°
0
工厂的指责就是制作产品,那么产品就可以理解为是我们的对象,而工厂就是为了实例化对象而对象的,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。 1、简单工厂模式简单工厂模式:也叫静态工厂模式,简单工厂模式相当于试试一个工厂中有各种产品,创建在一个类中,客户无需知道具体产品的名称,只需要知道产品的参数即可,相当于所有的汽车都是由一个厂里面生产出来的的,这个厂既能生产宝马,又能生产奔驰,还能生产其他的品牌的汽车,但是工厂的职责过重,而且当类型过多时不利于系统的扩展维护;简单工厂模式是不属于23种设计模式里面的;简单工厂模式示例代码packagec
-
yexindonglai@163.com
2022-03-01 11:54
设计模式
1120°
0
因为版本不同,每次运行main方法进行测试的时候都会报以下错误: Error:java:Compilationfailed:internaljavacompilererror所以每次都得去设置里面改回来,用起来很是麻烦 但是现在有一种非常好用的方法,就是直接修改maven的配置文件,我们先看看使用的maven是哪个版本的,版本下会直接显示出maven的目录地址,先进入maven3目录下的conf目录,settings.xml文件就藏在这里;我们打开settings.xml文件,在<profiles>标签下新增profile,加入以下内容即可,默认是被注释掉的<profiles> <p
-
yexindonglai@163.com
2022-03-01 11:53
设计模式
962°
0
代理模式的定义: 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,可以理解为是托管的作用,就像手机里的欢乐斗地主一样,我可以自己决定打什么牌,也可以用托管的方式让电脑帮我决定打什么牌,这时候电脑就帮我做了很多事情,我只需要像葛优一样躺在那静静地看着就好了,这种托管的形式就叫做代理模式; 在电脑程序中,一个对象创建后交给代理模式去管理,除了程序原有的逻辑,代理类还会为这个对象增加额外的逻辑处理,简单地说就是在不改变原代码的情况下来达到扩展功能的目的,一个简单的代理模式结构示意图如下 代理模式使用场景 面向切面编程(springAOP)、事务管理、日志打印、权限控
-
yexindonglai@163.com
2022-03-01 11:52
设计模式
901°
0
建造者模式原话:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;其实就是将一个对象详细化,比如把人分为美国人、日本人、中国人、韩国人、非洲人,每一种人都有不同的肤色、身高、头部特征;其实仔细看,建造者模式和工厂模式很像,很多人将这2者傻傻分不清楚,其实,工厂模式创建的是单个类,而建造者模式是将一个类型的东西集中起来进行管理,比如人类,它的里面会有很多分类: 1、黑皮肤、大高个、做事拖拉懒散,将这三者结合起来就成为一个类型:黑人; 2、黄皮肤、个子纤瘦、做事严谨、严丝合缝,将这四者结合起来就成为一个类型:日本人; 像肯德基或者麦当劳里面的套餐,将汉堡、可乐、奶
-
yexindonglai@163.com
2022-03-01 11:52
设计模式
913°
0
模板方法模式原文介绍 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 这原文乍一看是不是特抽象?这特么说的都是啥玩意,这也太抽象了吧,我相信只要是一个正常受过九年义务教育的人都看不懂这说的啥,不过呢,今天这篇文章就是帮助大家彻底理解这个东东的;模板方法通俗地讲,其实就是先定义一个抽象方法,将相同的逻辑放在抽象类里面,将不同的逻辑由子类实现, 模板方法使用场景实现一些操作时,整体部分是固定的,但是其中一小部分容易变,这个时候可以使用模板方法模式,将容易变的部分抽象出来,供子类实现,模板方法的具
-
yexindonglai@163.com
2022-03-01 11:41
设计模式
997°
0
适配器的定义 首先我们先要了解一下什么是适配器,以及适配器能干什么。下面的这2个东东大家都见过吧?是不是人手一个,不对,是每人都有好几个;这个东东就叫做电源适配器,在这个电源的内部经过了一层转换,把市电220V(单位:伏)的交流电转为手机能识别的5V(单位:伏)直流电 ; 我们在来看看下面这个东东,都见过吧,没错了,这就是type-c转耳机接口,因为我们的耳机大多都是3.5毫米直径的圆孔插口,但是现在大多手机都没这个接口了,所以要用耳机就得经过一层转换;当然了,还有下面的这些东东都叫适配器;也叫转接器、转换器都可以; 适配器流程说白了。适配器就是起到一个转换的作用,
-
yexindonglai@163.com
2022-03-01 11:38
设计模式
948°
0
为什么需要外观模式? 先举个例子,就拿我自己来讲,当程序员多年了,攒了一些小钱,现在年过35,被市场淘汰了,于是呢,衣锦还乡,回到老家想盖一座房子,如果让我自己来盖,是不是就很费事,我得去买造房子需要的材料,钢筋、混凝土、还得请工人,如果这些事情如果都是我来做的话,这实在是太麻烦了,有没有人能够帮我做这件事呢?就是有一个人帮我把上面的事情都做了,这样我就省心了;那么这时候我就可以找个包工头,付钱给他就好了,他会直接帮我把房子建好,我只要坐着看电视等他建好就行了!外观模式的概念 其实非常好理解,在程序的层面,就是做了一层封装,基于面向对象的封装概念,我把底层的功能都实现好了,你只需要调
-
yexindonglai@163.com
2022-03-01 11:37
设计模式
975°
0
什么是策略模式? 策略模式是有多个选择,每个选择都是一种策略,就像面向对象的一个特性:多态。就拿出行来说,比如我想从深圳去到北京,有多种出行方式供我选择:飞机、高铁、汽车;每种选择方式都有自己的特点;策略模式的原介绍是:定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换,在代码中更多的使用来表示算法的策略,比如我们GC垃圾回收算法中就用到了策略模式首先,算法是一个接口,所有的策略都是算法的实现类,实现不同的功能,这中间还有一个上下文Context;Context是上下文角色,也叫Context封装角色,起承上启下的作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变
-
yexindonglai@163.com
2022-02-28 20:00
设计模式
920°
0
什么是原型模式原型模式是一个创建型的模式。原型二字表明了该模式应该有一个样板实例,用户从这个样板对象中复制一个内部属性一致的对象,这个过程也就是我们称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更高效。关键就是两个字:克隆 对象克隆简介对象克隆,说白了,就是将已实例化的对象复制一个出来,有个别同学就要问了,字节new出来或者用反射创建一个实例出来不就好了吗? 干嘛要克隆?当然你可以new也可以反射,但是你new出来的对象都是空的,我们克隆是是将已有内容的对象复制一个一模一样的出