ef提出三个优先使用接口的原因:
- 现有的类可以很容易地被更新,以实现新的接口。
- 接口是定义mixin(混合类型)的理想选择。
- 接口允许我们构造非层次结构的类型框架。
假设有一个接口代表singer,另一个接口代表songwriter。
public interface Singer(){
AudioClip sing(Song s);
}
public interface Songwriter(){
Song compose(boolean hit);
}
则当我们要表达一个Person是歌唱家,作曲家,歌唱家兼作曲家时会非常方便,各取所需。而如果是用抽象类,复杂程度可以想象。
在学习代理这一块知识点时,如果代理类的原生类没有实现某个接口则只能使用cglib代理,而实现了接口则可以使用jdk代理,按照spring的做法,是优先使用jdk代理,其次才是cglib代理,可见一斑吧,但是还没有研究为什么如此抉择。
MVC设计模式中也是大量使用接口设计,主要是结合反射,可以很方便的更改系统实现。
本文探讨了接口在编程中的作用,包括更新现有类、定义混合类型及构造非层次结构类型框架。通过具体例子说明接口在表达多重角色(如歌唱家、作曲家)的优势,并对比抽象类的复杂性。同时,介绍了代理模式中接口优先使用的决策依据及MVC设计模式中接口设计的重要性,结合反射技术实现系统灵活性。

444

被折叠的 条评论
为什么被折叠?



