为什么要使用INTERFACE,而不是直接使用一个实体类来完成任务? INTERFACE和IMPL这种方式的好处是什么?

大家好,我是IT修真院成都分院第13期学员,一枚正直善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务1中,为什么要使用INTERFACE,而不是直接使用一个实体类来完成任务?INTERFACE和IMPL这种方式的好处是什么?
1.背景介绍
接口(interface):在JAVA中,接口是对行为的抽象,是一组规则的集合.
接口是抽象类的延伸可以将它看做是纯粹的抽象类.
抽象类
一个类含有抽象方法则称这个类为抽象类,用abstract修饰,抽象类中并不能只有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。
不过抽象类也不完全和普通类相同
1.抽象方法必须为public或者protected
2.抽象类不能用来创建对象;
3.如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。
2.知识剖析
在JAVA中描述对象属性的主要是抽象类
但是抽象类只能被一次继承,不能多次继承
为了在JAVA中能够使用多次继承,就引入了接口这个工具
接口的使用方法
接口的定义形式是:public interface InterfaceName{
//实现方法
}

接口中可以含有变量和方法
接口可以通过其他类使用"implments"来实现
当一个类使用了一个接口,接口中的所有方法必须被实现,否则这个类必须声明为抽象类

为什么使用interface
1.接口的意义在于抽象
2.不同部件或层次的开发人员可以并行开工,可以通过接口,统一标准
3.代码简洁,便于查看

3.常见问题
1.接口和抽象类之间的区别
接口是用interface声明的,而抽象类则是用abstract
抽象类中抽象方法可以用public,protected和default修饰符修饰.接口的默认修饰符是public,且不可使用其他修饰符
抽象方法可以继承一个类和实现多个接口,接口只可以继承一个或者多个其他接口
抽象类需要子类使用extends关键字继承抽象类,接口使用implements来实现接口
抽象类速度快,接口速度稍慢于抽象类

2.接口是抽象类的一种为什么还要使用interface
JAVA中类的继承至多只有一个,但是对象的属性不可能只有一个,为了实现多态,加入了interface的概念

3.为什么接口只能被public修饰
接口中可以含有 变量和方法
接口中的变量会被隐式地指定为public static final变量
方法会被隐式地指定为public abstract方法
4.接口的使用场景
1.类与类之前需要特定的接口进行协调,而不在乎其如何实现。
2.作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识
3.需要将一组类视为单一的类,而调用者只通过接口来与这组类发生联系。
4.需要实现特定的多项功能,而这些功能之间可能完全没有任何联系。

5.编码实战
6.扩展思考
贫血模型和充血模型
贫血模型

贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有的业务逻辑都不包含在内而是放在Business Logic层。

优点是系统的层次结构清楚,各层之间单向依赖,Client->(Business Facade)->Business Logic->Data Access(ADO.NET)。当然Business Logic是依赖Domain Object的。似乎现在流行的架构就是这样,当然层次还可以细分。

该模型的缺点是不够面向对象,领域对象只是作为保存状态或者传递状态使用,所以就说只有数据没有行为的对象不是真正的对象。

充血模型: 层次结构和上面的差不多,不过大多业务逻辑和持久化放在Domain Object里面,Business Logic只是简单封装部分业务逻辑以及控制事务、权限等,这样层次结构就变成Client->(Business Facade)->Business Logic->Domain Object->Data Access。

优点是面向对象,Business Logic符合单一职责,不像在贫血模型里面那样包含所有的业务逻辑太过沉重。

缺点:不能更好的分模块开发,业务逻辑比较混乱
7.参考文献
https://www.cnblogs.com/dolphin0520/p/3811437.html

https://www.cnblogs.com/tianxue/p/5641555.html

https://blog.csdn.net/liuyishan1993/article/details/79368181

https://blog.csdn.net/a910626/article/details/51655910
8.结尾
鸣谢

感谢观看,如有出错,恳请指正
更多讨论
详见视频
腾讯视频
感谢大家观看今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值