02 2022 档案
摘要:Lambda表示式 import org.springframework.beans.factory.ObjectFactory; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class In
阅读全文
摘要:定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 通俗的讲,状态模式主要解决当控制一个对象状态转换的条件表达式(判断过多)过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 抽象状态类: public abstract cla
阅读全文
摘要:在使用mybatis时,我们可以看到用mapper接口直接调用数据库语句。这不是很奇怪吗?首先是接口怎么可能能spring注入,接口没有构造方法,spring中肯定没有这个bean对象。 其实他这边用了动态代理。 AnnotationConfigApplicationContext annotati
阅读全文
摘要:对于spring的生命周期,在宏观角度来看: 可以分为实例化前、实例化、实例化后、初始化前、初始化、初始化后。 在详细角度来看: 可以分为1.生成BeanDefinition 2.合并BeanDefinition 3.加载类 4.实例化前 5.推断构造方法 6.实例化 7.BeanDefinitio
阅读全文
摘要:Bean的后置处理器在bean的生命周期中扮演一个十分重要的角色。 生命周期: 1.生成BeanDefinition 2.合并BeanDefinition 3.加载类 4.实例化前 5.推断构造方法 6.实例化 7.BeanDefinition的后置处理 8.填充属性 。。。。 BeanPostPr
阅读全文
摘要:ApplicationContext ApplicationContext和BeanFactory非常的相似,都是用来生产bean的,但是Application是继承于BeanFactory,所以ApplicationContext更加强大,比如有读取系统变量、发布、国际化。 public inte
阅读全文
摘要:初识BeanFactory 作用:用来生产Bean的。 beanFactory是一个接口,他有很多实现,功能非常强大。 public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String var
阅读全文
摘要:定义:抽象工厂模式和工厂模式非常像,从定义出发,提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。(就像下面的实例一样,只有一个user类的时候其实就是工厂模式,但如果增加了department的时候,也就是多个产品,那么这就是抽象工厂模式)。 实体类: public class
阅读全文
摘要:观察者模式又叫做发布-订阅模式。 定义:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使他们能够自动更新自己。 Subject:主题或抽象通知者。把所有对观察者对象的引用保存在一个聚合里面。 public abstract cl
阅读全文
摘要:定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 宽泛的讲:如果你需要将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示(客户端需要一个胖小人,具体怎么画靠我们自己去实现,客户端不需要知道)。如果我们用了建造者模式,那么用户就只需指定需要建造的类
阅读全文
摘要:定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 public class SubSystemone { public void methodOne(){ System.out.println("子系统方法一"); } } public c
阅读全文
摘要:例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。这样的例子在生活中还有很多,例如,一个人每
阅读全文
摘要:定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 简单工厂vs工厂方法:简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择动态实例化相关的类,对于客户端来说,去除了具体产品的依赖(像我们之前写的简单工厂博客,客户端只用传入加减乘
阅读全文
摘要:1.什么是BeanDefinition? 表示bean定义,spring根据BeanDefinition来创建Bean对象。 重要属性: beanClass:表示bean类型 scope:作用域,singleton表示单例,prototype表示原型(单例是一直用这个对象,原型表示对一个对象进行复制
阅读全文
摘要:定义:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 //对象接口 public abstract class Component { public abstract void operation(); } ConcreteComponent:定义一个具体的对象,也
阅读全文
摘要:1.单一职责原则 定义:就一个类而言,应该仅有一个引起它变化的原因。 生活中例子:就像我们的手机一样,他有很多的功能,可以玩游戏、拍照、听音乐等等。就单单拍照而言,他却比不上照相机。这就引申到代码,一块代码只做一件事。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者
阅读全文