《Java EE互联网轻量级框架整合开发》入门与技术基础

1.Hibernate和Mybatis的区别
Hibernate不需要编写大量的SQL,就可以完全映射,同时提供了日志、缓存、级联(级联比Mybatis强大)等特性,此外还体用HQL对POJO进行操作,致命缺陷是由于无须SQL,当多表进行关联超过3个时,通过Hibernate的级联会造成太多的性能的丢失,并且无法使用存储过程。
Mybatis可以自由书写SQL,支持动态SQL、处理列表、动态生成表名、支持存储过程。缺陷是需要自己编写SQL和映射规则,另外支持的工具也比较有限,即使有生成工具,往往也需要进一步简化。
对于性能要求不太严苛的系统,比如管理系统、ERP等推荐使用Hibernate,对于性能要求高、响应快、灵活的系统则推荐使用Mybatis。
2.责任链模式
生活中可能会有这种场景,一个程序员需要请假一周,然后他的请假申请单需要经过项目经理、部门经理、人事等多个角色的审批,每个角色都有机会通过拦截这个申请单进行审批或者修改。这时我们需要提供3个拦截器,而传递的对象是请假申请单。
当一个对象在一条链上被多个拦截器拦截处理时,这样的设计模式称为责任链模式。设计方法是设计一个拦截器接口,然后给出其多个实现,最后依次拦截。拦截器的实现使用JDK动态代理,与Spring AOP的实现一样。
3.观察者模式
观察者模式要同时存在观察者和被观察者双方,观察者可以有多个。在Java中,被观察者需要继承java.util.Observable类,观察者需要继承java.util.Observer类,通过在被观察者类中调用其父类的addObserver方法添加观察者,如果被观察者发生了变化,通过调用父类的setChanged和notifyObservers方法通知观察者,观察者类只需要重写Observer的update方法即可。
4.建造者模式
建造者模式属于对象的构建模式。在大部分情况下可以通过new关键字或者工厂模式来创建对象,但是有些对象比较复杂,这时候就需要使用建造者模式将创建对象的过程分步完成,即将其写到一个方法中,最终完成对象的创建,而不是通过复杂的构造器。

猜你喜欢

转载自blog.csdn.net/bathe123/article/details/82774859