java中接口的具体作用对于初学者来说理解起来确实有点难度,毕竟它是抽象上的抽象嘛!!! 这里废话就不多说了 直接把自己对java接口作用的理解奉上 ,同时也希望取得抛砖引玉的效果 期望牛人补充 指教!!!!
- java接口的具体作用之一 -----对内
(1) 它让业务层与逻辑层分离实现层与层之间的解耦
举个很简单的例子 【系统后期业务升级】
很多类中都用到 SpeedService这个service 当业务发生变动时 我们不需要去修改之前的代码 而是重新创建一个 SpeedService 实现类 SpeedServiceImpl2 去重新实现变动的业务即可 eg:
升级前:
implClassUrl="cn.qianqian.javaabc.part02.serviceimpl.AirSpeedImpl";
SpeedService speed = (SpeedService) Class.forName(implClassUrl).newInstance();
那么升级后我只需要这样变动就ok
implClassUrl="cn.qianqian.javaabc.part02.serviceimpl.SpeedServiceImpl2";
SpeedService speed = (SpeedService) Class.forName(implClassUrl).newInstance();
这里是为了便于理解 implClassUrl这个变量在我们项目中我们可以创建一个常量类来存放 implClassUrl的值 eg: Constant.implClassUrl 那么后期的业务升级时 不管什么地方用到 SpeedService 我们只需要改动 Constant.implClassUrl这个值即可 当然用到Spring的话 你懂的 只需要将配置文件中 bean 的实现类URL修改下即可
(2) 它实现了类的多态性
其它不多说直接eg奉上
implClassUrl="cn.qianqian.javaabc.part02.serviceimpl.AirSpeedImpl";
Speed speed = (Speed) Class.forName(implClassUrl).newInstance();
Price price = (Price) Class.forName(implClassUrl).newInstance();
2. java接口的具体作用之一 -----对外
接口为外部访问者制定了一种规范 约束并统一了访问者访问方式
其次也对外部访问者隐藏了业务的具体实现
以上是我对java接口的一点理解 希望能得到牛人补充 指点!