这里是修真院前端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析前端知识/技能,本篇分享的是:
【为什么要使用INTERFACE】
大家好,我是IT修真院成都分院第13期的学员,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网JAVA任务一,深度思考中的知识点——
为什么要使用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/dolph...
https://www.cnblogs.com/tianx...
https://blog.csdn.net/liuyish...
https://blog.csdn.net/a910626...
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。