
设计模式
文章平均质量分 89
tony_code_2017
开心就好
展开
-
对开源软件修改的一些思考和总结
对开源软件修改的一些思考和总结 1.为什么修改? 公司需要开发一款基于web页面的报表应用,但是不能自己从零开发,要基于现有的开源框架进行二次开发或者如果开发框架能满足需求就不再进行二次开发。最后在github上找到一款基于java spring框架的报表软件,但是部分功能不满足目前的需求,需要进行二次开发。 2.如何修改最合适? 虽然进行二次开发,领导要求做到不能影响到后续的开源应用升级。也就是说,我们可以对源码进行二次开发,但是我们开发所做的修改不能影响到后续开源应用升级...原创 2020-12-05 21:31:01 · 1556 阅读 · 0 评论 -
MyBatis 源码学习之二 MyBatis事务
MyBatis事务 本篇主要学习MyBatis的事务代码,从设计模式,代码实现,事务分类等三个方面进行学习。关于数据库事务的特性和隔离级别与传播级别此处不做学习,将会有另外的篇幅进行学习。 事务分类 MyBatis事务分为两个类型,分别是JdbcTransaction和ManagedTransaction。开发过程中主要使用前者,按照type="jdbc" 或者type=...原创 2018-06-14 22:57:44 · 1696 阅读 · 0 评论 -
【设计模式】学习之开篇 设计模式浅谈与设计模式六大原则
设计模式,Design Pattern 代表了构造某一事物的最佳实践。软件设计模式通常被有经验的面向对象的软件开发人员所采用,因为他们一些场景问题的最佳解决方案,这些解决方案是众多开发人员,设计人员在相当长的一段时间内从错误和经验中总结而来的。在我们阅读一些开源框架的时候,总会感觉有一些困惑,其中一部分原因就是我们不理解这其中涉及的设计模式。尤其像Spring,MyBatis等较为著名的开源软件更...原创 2018-11-17 18:19:29 · 157 阅读 · 0 评论 -
【设计模式】学习之创建型 建造者模式
上一篇 我们学习了工厂模式 ,这一篇我们学习建造者模式,所谓建造者模式就是要我们像现实生活中的建筑建造者一样 一个步骤一个步骤地建造自己的伟大建筑,因为伟大的建筑都是复杂的。当我们要建造一个复杂的对象时,只能是一步一步的进行构造,而不能像平常那样,直接使用一个构造函数进行构造。接下来我们还是结合MyBatis源码学习该模式:1. MappedStatement 该类是MyBatis中...原创 2018-11-26 11:31:31 · 227 阅读 · 0 评论 -
【设计模式】学习之创建型 工厂模式
工厂模式,在开发中广泛使用的一种用于对象创建的设计模式,尽管有时候我们可能并不知道自己使用的就是工厂模式或者看到的开源软件源码中用到的就是工厂模式。开源软件中的MyBatis中的SqlSession的创建就是使用了工厂模式,分析如下:接口 SqlSessionFactory /** * Creates an {@link SqlSession} out of a con...原创 2018-11-25 10:59:05 · 147 阅读 · 0 评论 -
【设计模式】学习之结构型 适配器模式-装饰器模式-代理模式
本篇主要学习适配器模式,装饰器模式,代理模式的使用和结合开源组件源码进行分析,最后对他们作以比较适配器模式 适配器模式,提起适配器我们首先想到的就是春天框架中的RequestMappingHandlerAdapter,那么我们看看它的顶级接口的的HandlerAdapter的注释:其中第一段的注释如下:此接口用于允许{@link DispatcherServlet}无限...原创 2018-12-04 18:11:48 · 589 阅读 · 0 评论 -
【设计模式】学习之创建型 单例模式
提起单例模式,我们一般首先想到的就是Spring 框架中的Bean的作用域singleton,当一个bean的作用域为单例的时候,这个bean在Spring 的容器中只有一个实例化的对象。那么我们如何实现一个单例对象呢?首先,构造函数私有化,这样子就只能在该类中调用new 方法创建该类的对象。其次,变量必须是类变量来接收这个创建的实例对象;最后提供一个公共的静态方法,对外提供获取...原创 2018-11-27 23:32:29 · 178 阅读 · 0 评论 -
【设计模式】学习之创建型 原型模式
1.Object.clone()方法在学习原型模式以前,我们先学习下Object对象的一个clone()方法,JDK1.8源码如下:/** * Creates and returns a copy of this object. The precise meaning * of "copy" may depend on the class of the object...原创 2018-11-28 22:56:21 · 200 阅读 · 0 评论