随笔分类 - 设计模式
摘要:责任链模式的定义: 责任链模式为请求创建了一个接收者对象的链,在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 在SpringMVC中DispatcherServlet的HandlerExecutionChain也应
阅读全文
摘要:下面跟随源码一步步找到如何启动内置的tomcat(springboot版本为2.1.2): 1、启动类 @EnableTransactionManagement @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class
阅读全文
摘要:定义 使用生成器模式封装一个产品的构造过程,并允许按步骤构造。 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 使用场景 当一个类的构造函数参数比较多,并且参数存在非必须有可选的情况时,使用构造者模式比较灵活。 在上述场景下采用多构造函数重载方式的话构造函数会比较多,使用不
阅读全文
摘要:定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 举例说明: car接口: package factory; public interface Car { String getCarName(); } car实例1: package factory;
阅读全文
摘要:定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 一、简单例子: 下面先以一个简单的例子说明一下: 抽象模板类: package template; public abstract class RoastFish {
阅读全文
摘要:HeadFirst 设计模式中对装饰者模式的定义: 装饰者模式动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。 以下是HeadFirst 设计模式中关于装饰者模式的类图: 1、有一个抽象的组件(面条)。 2、有具体的组件实现(牛肉面、鸡蛋面)。 3、有进行装饰的类(加
阅读全文
摘要:一、jdk观察者模式实现代码分析: 1、Observable-被观察者(主题) 2、Observer-观察者接口 二、应用jdk观察者模式实现的案例: 1、被观察者(主题) 2、两个观察者 3、测试类 4、执行结果如下: ObserverA第一次发生变化观察者数量1ObserverB第二次发生变化O
阅读全文
摘要:一、拍脑袋想的版本: 二、线程安全版本(性能存在缺陷) 三、高效且线程安全版本 四、饿加载方式
阅读全文