java三大框架为啥要一个实现类和一个接口???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java三大框架为啥要一个实现类和一个接口???相关的知识,希望对你有一定的参考价值。

java三大框架开发模式为什么要一个实现类和一个接口,例如一个dao接口和一个dao的实现类,逻辑层就一个service接口和一个service实现类,这是有什么好处呢?

降低耦合, 我可能说的不是很科学,不过我自己是这么理解的:
DAO类是操作数据库的类,先定义一个DAO接口,定义好这个接口的功能,那么这个接口以后就不用再改动了(特殊原因除外),Service是调用这个接口。而现在你用的数据库可能是mysql,那你就写一个DAO接口的实现类是针对MYSQL的DAO类,而以后可能数据库换了成oraclel了,那你只需要再写一个针对oracle的DAO类实现就行了,Service层的东西是不需要改动的。
参考技术A 降低耦合,屏蔽具体实现,易于BEAN注入 参考技术B 主要是为了后期的扩展和维护。 参考技术C 要理解mvc,分层的目的要注意降低开发过程中的耦合性,注入管理等。。。 参考技术D 主要是为了后期的扩展和维护

java 面向对象三大特性(封装,继承,多态)以及抽象接口的介绍


转载请备注出自于:http://blog.csdn.net/qq_22118507/article/details/51422591


封装:

1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。

3.封装的基本要求是:把所有的属性私有化,对每个属性提供getter和setter方法,如果有一个带参的构造函数的话,那一定要写一个不带参的构造函数。在开发的时候经常要对已经编写的类进行测试,所以在有的时候还有重写toString方法,但这不是必须的。


继承:

1.目的:实现代码的复用。

2.介绍:当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它两个类继承这个父类。继承后子类自动拥有了父类的属性和方法,但特别注意的是,父类的私有属性和构造方法并不能被继承。另外子类可以写自己特有的属性和方法,目的是实现功能的扩展,子类也可以复写父类的方法即方法的重写。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。有时候我们需要这样的需求:我们需要将某些事物尽可能地对这个世界隐藏,但是仍然允许子类的成员来访问它们。这个时候就需要使用到protected








多态:

1.概念:相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。


2. Java实现多态有三个必要条件:继承、重写、向上转型。

         继承:在多态中必须存在有继承关系的子类和父类。

         重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

         向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

      只有满足了上述三个条件,我们才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象,从而达到执行不同的行为。


3.多态的实现方式:


(1)基于继承实现的多态

      基于继承的实现机制主要表现在父类和继承该父类的一个或多个子类对某些方法的重写,多个子类对同一方法的重写可以表现出不同的行为。


(2)基于接口实现的多态

      继承是通过重写父类的同一方法的几个不同子类来体现的,那么就可就是通过实现接口并覆盖接口中同一方法的几不同的类体现的。

      在接口的多态中,指向接口的引用必须是指定这实现了该接口的一个类的实例程序,在运行时,根据对象引用的实际类型来执行对应的方法。

      继承都是单继承,只能为一组相关的类提供一致的服务接口。但是接口可以是多继承多实现,它能够利用一组相关或者不相关的接口进行组合与扩充,能够对外提供一致的服务接口。所以它相对于继承来说有更好的灵活性。


4.多态性主要表现在如下两个方面:


(1)方法重载.通常指在同一个类中,相同的方法名对应着不同的方法实现,但是方法的参数不同.

以上是关于java三大框架为啥要一个实现类和一个接口???的主要内容,如果未能解决你的问题,请参考以下文章

java讨论:啥是多态和接口,为啥需要?

C#为啥接口可以实例化一个实现该接口的类?

Java 类和对象继承

java类和接口的区别

Java三大框架的Dao、ImplementDao、Service、ImplementService分别有啥作用?详细点。加分(男人说的).

三大框架的底层是啥 反射? 反射和映射的区别是啥 我是学JAVA的