- 博客(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
原创 设计模式-享元模式
设计模式-享元模式运用共享技术有效地支持大量细粒度的对象在享元对象内部并且不会随环境变化而改变的共享部分,可以称为是享元对象的内部状态,而随环境改变而改变的、不可共享的状态就是外部状态我们以多颜色的笔举例先看笔的抽象类和具体实现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
原创 设计模式-桥接模式
设计模式-桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化比如我们现在手机上的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
原创 设计模式-观察者模式
设计模式-观察者模式别名:发布-订阅模式定义了多个订阅者监听某个发布者的一对多依赖关系,当发布者发布消息时订阅者会被通知并自主处理状态变化。看代码我们先定义 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人