摘要:
建造者模式 一 场景 在软件开发中,我们有时候会创建一些复杂的对象,这些对象有着复杂的内部结构,它们都是有一系列部件组成。这些部件相互依赖,而且部件的构建通常面临着复杂的变化。我们需要先按照一定的顺序来创建各个部件,最后将这些部件组装成一个完整的对象。 针对上述情况,我们可以使用建造者模式来创建对象 阅读全文
摘要:
SpringBoot怎么自定义一个Starter starter是什么 spring-boot-starter是spring-boot的一个非常重要组成部分。spring-boot-starter可以理解为一个可拔插式的组件。它可以让模块开发独立化,相互间依赖更加松散,也可以更加方便地集成。 当应用 阅读全文
摘要:
装饰模式 一 场景 在软件开发中,我们有时候需要对一个已经存在对象的某个功能进行扩展。如果我们在这个对象的功能基础上进行修改,比如加入了新的字段,新的方法。这样就会增加原有对象的复杂度,不符合开闭原则。 有没有什么方法能既可以不改变原对象,又可以对对象的功能进行扩展了?装饰模式恰好针对这种情况提供了 阅读全文
摘要:
Spring MVC组件之ViewResolver ViewResolver概述 ViewResolver组件的作用主要根据视图名和本地化的Locale,来解析出相应的视图View对象。 在SpringMvc的源码中,ViewResolver是一个接口。该接口主要定义了一个方法。 View reso 阅读全文
摘要:
Spring MVC组件之HandlerAdapter HandlerAdapter概述 HandlerAdapter组件是一个处理器Handler的适配器。HandlerAdapter组件的主要作用是适配特定的Handler来处理相应的请求。 在SpringMvc的源码中, HandlerAdap 阅读全文
摘要:
Spring MVC组件之HandlerMapping HandlerMapping概述 HandlerMapping组件的作用解析一个个Request请求,并找到相应处理这个Request的Handler。Handler一般可以理解为Controller控制器里的一个方法。 HandlerMapp 阅读全文
摘要:
代理模式 一 场景 在软件开发中,有时候需要访问远程jvm中的对象。我们可以在本地jvm中创建一个代理对象。用这个代理对象将网络细节封装起来,使得客户端不必考虑网络的存在。客户端访问远程jvm对象就像调用本地对象一样。这就是代理模式的远程代理。 有时候程序创建的一些对象,十分消耗系统资源,这些对象的 阅读全文
摘要:
策略模式 一 意图 在平时的软件开中,我们对一个功能可能有多种不同的实现方式。程序需要在这些不同的实现方式之间进行切换。而实现方式的切换,程序中往往需要大量判断逻辑的代码。当每增加一种新的实现方式后,程序的复杂度也会随之增加。 对于这种情况,策略模式就是一种好的解决方案。使用策略模式,可以把这些实现 阅读全文
摘要:
状态模式 一 意图 一些对象具有多种状态,而且在不同的状态下也具有不同的行为, 这些状态在某些情况下又能够相互转换。 为了在编码时,对上述的对象能够好的进行设计和管理,我们可以使用一种被称之为状态模式的设计模式。 状态模式主要是解决当控制一个对象状态转换的条件表达式,过于复杂的情况。把状态的判断逻辑 阅读全文