自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从源码注释看Spring Bean生命周期

Spring Bean 生命周期是很经典的问题,已经有很多详细的文章介绍,从Spring源码注释也可以看到一些端倪。Spring Version: 5.3.1-SNAPSHOTClass: org.springframework.beans.factory.BeanFactory相关注释: * <p>Bean factory implementations should support the standard bean lifecycle interfaces * as far as

2021-01-29 11:13:22 143

原创 希尔排序

别名:缩小增量排序实质:插入排序理论时间复杂度:O(n^2)空间复杂度:O(1)代码实现public class Demo { public static void main(String[] args) { int arr[] = {5, 3, 9, 7, 6, 1, 2, 4, 8, 0}; shellSort(arr); System.out.println(Arrays.toString(arr)); } publ

2020-09-04 16:41:11 95

原创 设计模式-访问者模式

设计模式-访问者模式

2020-08-09 00:56:52 99

原创 设计模式-解释器模式

设计模式-解释器模式

2020-08-04 00:51:01 100

原创 设计模式-享元模式

设计模式-享元模式运用共享技术有效地支持大量细粒度的对象在享元对象内部并且不会随环境变化而改变的共享部分,可以称为是享元对象的内部状态,而随环境改变而改变的、不可共享的状态就是外部状态我们以多颜色的笔举例先看笔的抽象类和具体实现public interface Pen { void write(String content);}public class ConcretePen implements Pen { private String color;

2020-08-02 12:24:16 109

原创 设计模式-中介者模式

设计模式-中介者模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。我们拿租房中介来举例先定义抽象的用户public abstract class User { @Setter protected Mediator mediator; @Getter protected UserType type; @Getter protected String name;

2020-08-02 00:17:58 84

原创 设计模式-责任链模式

设计模式-责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。我们来举个例子假如你住在XX省XX市XX县,当你在网上购物的时候,网站会从最近的仓库发货给你,根据不同的商品会有不同的选择,因为每个仓库中存储的货物并不相同。先定义一个配货请求@Data@AllArgsConstructorpublic class AllocatingRequest { private String g

2020-08-01 21:53:06 126

原创 设计模式-命令模式

设计模式-命令模式

2020-07-31 00:42:28 116

原创 设计模式-桥接模式

设计模式-桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化比如我们现在手机上的APP在开发的时候都会开发两个版本,以适配ios和安卓,我们就拿这个来举例先定义APP的抽象类public abstract class MobileApp { abstract String getName();}再定义操作系统的抽象类,它聚合了APPpublic abstract class MobileSystem { List<MobileApp> apps =

2020-07-27 19:51:18 92

原创 设计模式-单例模式

设计模式-单例模式单例模式大家应该都很熟悉了,再重复一下它的定义:保证一个类只有一个实例,并提供一个访问它的全局访问点下面来讨论一下实现方式首先是最常见的懒汉式和饿汉式饿汉式public class Singleton1 { private static Singleton1 instance = new Singleton1(); private Singleton1() { } public static Singleton1 getInstance(){

2020-07-26 13:55:41 68

原创 设计模式-迭代器模式

设计模式-迭代器模式

2020-07-25 09:49:03 78

原创 设计模式-组合模式

设计模式-组合模式

2020-07-24 19:05:19 65

原创 设计模式-备忘录模式

设计模式-备忘录模式不破坏封装的捕获并保存对象的内部状态,并可以在之后恢复保存的状态

2020-07-24 00:10:17 73

原创 设计模式-适配器模式

设计模式-适配器模式

2020-07-22 14:34:08 97

原创 设计模式-状态模式

设计模式-状态模式

2020-07-19 23:13:29 79

原创 设计模式-观察者模式

设计模式-观察者模式别名:发布-订阅模式定义了多个订阅者监听某个发布者的一对多依赖关系,当发布者发布消息时订阅者会被通知并自主处理状态变化。看代码我们先定义 Subject 和 Observerpublic interface Observer { void update(Object obj);}public abstract class Subject { private List<Observer> observers = new ArrayList&l

2020-07-18 17:49:52 102

原创 设计模式-建造者模式

设计模式-建造者模式别名:创建者模式建造者模式针对复杂对象,分离它们的构建与表示,达到同样构建过程创建不同表示的目的。建造者模式封装了复杂对象的构建过程,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。...

2020-07-17 23:02:21 88

原创 设计模式-外观模式

设计模式-外观模式外观(Facade)模式为子系统中的一组接口提供一个一致的界面。它的结构比较简单,为系统定义了高层接口。包含对各个子系统的引用,调用方通过高层接口调用各个子系统的功能。外观模式通过增加 facade 实现了客户端与子系统之间的松耦合,子系统的迭代不会被客户端感知比如我们去餐馆吃饭点餐有点餐,制作和上菜三个步骤public class Ordering { public void order(String dish){ System.out.printl

2020-07-16 19:46:42 118

原创 设计模式-模板方法模式

设计模式-模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法模式通过将一些通用的,固定的逻辑抽离到抽象父类中,来减少代码重复,实现代码复用。比如公司在招聘的时候要进行面试,面试的基本流程是相似的public abstract class AbstractInterview { public void process(){ System.out.println("现在进行的是" + this.getPosition() + "岗位的面试...");

2020-07-16 15:31:22 81

原创 设计模式-原型模式

设计模式-原型模式

2020-07-16 13:44:32 94

原创 设计模式-代理模式

设计模式-代理模式

2020-07-10 16:41:36 70

原创 设计模式-装饰模式

设计模式-装饰模式

2020-07-08 22:10:59 74

原创 设计模式-策略模式

设计模式-策略模式当遇到根据条件选择处理方式的情况,就可以考虑使用策略模式处理这种变化的可能性。

2020-07-01 22:28:02 139

原创 设计模式-工厂模式

设计模式-简单工厂模式

2020-06-28 23:54:25 86

空空如也

空空如也

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

TA关注的人

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