自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 1.创建者模式-单例模式

答案是不安全:如果大家学过多线程,应该会有所了解,当我们的线程1拿到了cpu的执行权,开始执行代码,就是这么巧,执行完instance == null 这个语句了,是null,进入的if语句块中了,就在这时,cpu的执行权到期了,给到了线程2,线程2获取到了cpu执行权,通过的if判断进来了,他判断的时候肯定也是能通过的,因为线程1还没创建,cpu时间片就没了,所以线程2执行成功创建了一个对象,此时线程1拿到时间片开始干活,他又创建了一次对象。所以你会看到后面两个输出的instance都是一样的。

2024-09-25 17:43:58 614

原创 6.合成复用原则

在这个例子中,Car类通过组合的方式包含了Engine类的对象,而不是通过继承。这是不允许的,因为GasolineCar和ElectricEngine之间没有继承关系,它们都是Vehicle的子类,但彼此之间并不相关。首先,我们定义一个简单的Engine类,这个类包含一些基本的属性和方法,比如发动机的型号、功率以及启动发动机的方法。接下来,我们定义一个Car类,这个类通过一个Engine类型的成员变量来引用一个发动机对象。----> NO!通常类的复用分为:合成复用(推荐) 与 继承复用。

2024-09-23 22:59:07 975

原创 5. 迪米特法则

再比如,我们都是程序员,如果有一家公司想做一款app,他会去找软件工程师呢,还是软件开发公司,他一定回去找开发公司。明星由于全身心投入艺术,还需要唱跳打篮球,所以许多日常事务由经纪人负责处理,如和粉丝的见面会,和媒体公司的业务治淡等。这里的经纪人是明星的朋友,而粉丝和媒体公司是陌生人,所以适合使用迪米特法则。假如现在我要买房,我去卖房软件上,看到了一个自己喜欢的房,打电话,接电话的人大多都是房产中介。存在关联,聚合,组合,依赖关系的都可以直接访问这些对象的方法,不需要中间商。【案例-明星与经纪人】

2024-09-23 21:48:51 242

原创 4. 接口隔离原则

因为我们的高端品牌的防盗门太贵了,不亲民,所以我们需要研发一款价格比较亲民的,但是功能没那么多的,只有防盗和防火功能,那么此时还去继承SafetyDoor 就会违背接口隔离原则。假设我们现在有一个A类,A类中有两个方法,方法1和方法2,我们还有一个B类,想使用方法1,我们应该怎么做?这里有一个问题:就是B只想使用方法1,不使用方法2,但是我们的B继承了A,就被迫依赖了它不需要的方法。所以我们可以按照能力来创建接口,防盗功能是一个接口,防火功能是一个接口,防水功能是一个接口。是不是此时有一点感觉了!

2024-09-23 18:19:43 501

原创 3. 依赖倒转原则

我们在日常开发代码中,写的方法,里面是不是经常会看到参数是接口的形式,比如我们要接收一个collection集合,但是在实现的时候是不是可以把list传进去。是对象间耦合度最弱的一种关联方式,在代码中,某个类的方法通过局部变量,方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。依赖倒转原则是开闭原则的一种实现,大家可以想一想,开闭原则的内容:对扩展开放,对修改关闭。继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。

2024-09-23 00:14:51 441

原创 2.里氏替换原则

我们可以看到resize这个方法是长方形具备的,但是正方形不具备的,所以这不满足lsp,这不是一个合理的继承关系,当然了,你要非得继承也是可以的,直接在正方形的resize中设置,调用resize就抛异常,直接屏蔽了正方形中的resize方法,但是不合理。假如我们想要开发一款与几何图形的软件相关的系统,我们通常都是让正方形继承长方形。换句话说,子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法(注意是尽量,而不是必须!lsp原则要求我们:子类可以扩展父类的功能,但不能改变父类原有的功能。

2024-09-23 00:13:46 332

原创 1. 开闭原则

上述代码要完成的是电商的折扣卷计算的方法,Order 类包含一个计算折扣金额的方法,它根据不同的折扣类型应用折扣。当我们需要添加新的折扣类型时,就不得不需要修getDiscountedAmount 方法的代码,这显然是不合理的,这就违反了开闭原则。在程序需要拓展的时候,不能去修改原有代码,实现一个热插拔的效果(即插即用),这样写出来的程序才能具有良好的扩展性,易于维护性。假如我们妲己最近玩的人很多,又想出一款新的皮肤,那么我们只需要创建一个新的类去实现抽象皮肤类去实现方法即可。(修改模块、类、方法等)。

2024-09-22 01:02:50 588

原创 Swagger报错空指针问题

Swagger报错空指针问题

2023-08-09 13:39:13 532

原创 Python爬虫之JS篇---Python基础语法(1)---变量+字符串

爬虫,又称网络爬虫或网页蜘蛛,是一种自动或半自动的网络机器人,用于从互联网上收集和提取信息。爬虫的主要任务是遍历网页、跟踪链接并抓取所需的数据。这些数据可以包括文本、图片、视频、音频等各种形式的内容。爬虫的基本原理是通过发送HTTP请求(如GET或POST请求)来访问网页,然后解析返回的HTML内容以提取所需信息。在解析过程中,爬虫会识别页面中的超链接(即URL),并根据一定的规则(如深度优先搜索、广度优先搜索等)将这些链接添加到待访问的URL列表中。

2023-08-04 20:47:50 754 1

原创 Golang笔记篇---变量赋值

ps:当我们为变量进行 ==> 声明并赋值的时候,后面的类型是可以不用显示标注的,编译器会先去判断后面值的类型,并根据类型去开辟空间,这样声明变量更加方便。ps:全局变量是不允许使用这种简洁写法的。这个简介写法只当作了解就行,用处不多。

2023-08-02 15:41:20 316

原创 使用Goland运行代码时总会将go_bulid_xxx文件生成在C盘

使用Goland运行代码时总会将go_bulid_xxx文件生成在C盘step1点击再点击选则自己想要存储的地址即可

2023-08-02 14:49:03 364

原创 关于SpingBoot整合MP中Mapper相关的错误1

关于springboot整合MP中出现的错误

2023-08-02 10:22:41 128

原创 SaToken权限认证错误:NotLoginException-未能读取到有效token-可能是远程调用出现了错误

satoken框架,鉴权出现问题,可能是你使用了远程调用

2023-07-06 10:29:19 10408 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除