对DIP、IoC、DI、IoC容器的解释,静下心,认真看完就能理解

1、基本概念总结:
<1>、hibernate:
     hibernate比较常用的环境是ORM机制,就是将传统的关系型数据库,转化为面向对象编程思想来操作操作数据库。
 举个例子来解释:例如一个表单上有名字、年龄、爱好、性别。。。。等许多的关键字,在没有使用ORM机制之前,你需要
 为这些字段的内容分别创建一个变量来进行保存,然后再一条条的写sql语句,这样会很麻烦,做很多重复的工作,而在你
 使用了hibernate中的ORM机制以后,就会将数据库中的表映射为一个对象,然后在表单对应的input的name上,填写对应对
 象的对应属性,然后在保存的时候,在提交到的action中,定义一个student的对象实例,那么这些数据就会自动保存在这个
 对象之中了。接下来你就只需要保存一下这个对象就可以了,而不再需要一条一条的进行保存了。
<2>、SessionFactory:(顾名思义,就是产生session的工厂)
    SessionFactory接口负责初始化hibernate。它充当数据存储源的代理,并负责创建session对象。
<3>、Session:
     这里要注意一下,hibernate中的session并不是http中的session。HttpSession对象称为用户会话。
 而hibernate中的session是用来表示,应用程序和数据库的一次会话。通常将每个session实例和一个数据库事务绑定,也
 就是每执行一个数据库事务,都应该先创建一个新的Session实例,在使用Session之后,要记得关闭session。    
<4>、DIP依赖倒置原则:
     依赖倒置原则:一种软件架构设计的原则。
     具体形象的例子:比如说生活中应用到的atm取款机和银行卡,众所周知,任何一张银行卡都可以从个大银行的atm取款机取
 款,银行卡的设计规则是依据各个atm取款机统一的设计规则来设计的,而不是atm根据银行卡来设计在这个例子中,ATM相当于高
 层模块,而银行卡相当于底层模块。也就是说ATM不依赖于具体的哪种银行卡,它只需要定义好银行卡的规则参数(接口),所有实现
 了这种规格参数的银行卡都可以在ATM上使用.所以,在软件设计方面,依赖倒置原则,它转换了依赖,高层模块不再依赖于底层模块
 的实现,而底层模块依赖于高层模块定义的接口。通俗的讲,就是高层模块定义接口,底层模块负责实现。
     使用接口实现而不是继承的原因:在类的继承中,只能做单重继承,而实现接口时,一次可以实现多个接口。
     如果底层模块设定接口,那么当有新的底层模块类出现的时候,高层模块就会需要修改代码,来实现新的底层模块的接口。这样,
 就破坏了开发封闭的原则。
·总结:DIP的优点:
      (1)、系统更柔韧:可以修改一部分代码而不影响其他的模块。
      (2)、系统更健壮:可以修改一部分代码而不会让系统崩溃。
      (3)、系统更高效:组件松耦合,且可以复用,提高开发效率。
<5>、控制反转Ioc:
     控制反转(IoC):一种反转流、依赖和接口的方式(DIP的具体实现方式)。
     DIP是一种软件架构的设计原则:高层模块不应该依赖于底层模块.它只告诉了你一种设计原则,但是并没有告诉你如何去做.
  Ioc控制反转就是一种设计模式,它就来告诉你如何去做,来解除相互依赖模块的耦合。
·控制反转(IoC):它为相互依赖的组件提供抽象,将依赖(底层模块)对象的获取交给第三方(系统)来控制,也就是说不在高层模块
  中进行获取底层模块对象的操作,即依赖对象不在被依赖模块的类中直接通过new来获取。
   例如:ATM自身并没有插入具体的银行卡,而是将插卡的操作交给人来完成。在软件设计中就是把依赖对象的实例化操作交给第三
  方来完成。
·设计原则:原则为我们提供指南,它告诉我们什么是对的,什么是错的。它不会告诉我们如何解决问题。它仅仅给出一些准则,
  以便我们可以设计好的软件,避免不良的设计。一些常见的原则,比如DRY、OCP、DIP等。        
·设计模式:模式是在软件开发过程中总结得出的一些可重用的解决方案,它能解决一些实际的问题。一些常见的模式,比如工
  厂模式、单例模式等等
·总结:高层模块的类不应该依赖于底层模块,而两者应该依赖于抽象(抽象类不能够实例化)。为了实现这种设计原则,我们可以使用
  Ioc来优化代码。Ioc有两种常见的实现方式:依赖注入和服务定位。
·注解:解释抽象类:
       对于普通方法,有"{}"表示方法体,有了方法体就可以进行实例化,而当没有方法体的时候,就表示的是抽象方法,抽象方法
  不能够进行实例化。有抽象方法的类就表示抽象类。抽象类不能够进行实例化,可以继承进行覆写。
·对于类和接口的一些关系,遵循以下原则(不管是抽象类还是实体类都遵从以下原则):
       1、接口只能继承接口,还可以继承多个接口,用逗号隔开。接口不能继承类。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值