面向对象设计原则六 - 针对接口编程,而不是针对实现编程 - 森林狼 - JavaEye技...
来源:百度文库 编辑:神马文学网 时间:2024/04/29 09:17:16
接口
- 接口是一个对象中可以被另一个对象调用的一组方法
- 一个对象可以有多个接口
- 类型是一个对象的特殊接口
- 不同的对象可以有相同的类型,一个对象可以有多种不同的类型
- 一个对象只有通过它的接口才能被其他对象知晓
- 接口是可插拔的关键
实现继承和接口继承
- 实现继承(类继承)------ 一个对象的实现定义在另一个对象的实现的基础上
- 接口继承 ------ 描述了一个对象什么时候可以代替另一个对象使用
- Java为接口继承提供了专用的结构 - interface
- Java的接口结构使专注于对象接口的设计更容易实现
接口的优缺点
- 优点
- 客户端不知道他们所使用对象的具体类型
- 一个对象可以被另一个对象轻易地替换
- 对象不需要硬连接到一个特殊类的对象,因此增加了灵活性
- 松耦合
- 增加了重用的机会
- 增加了组合的机会,因为被包含的对象可以被实现了特定接口的其他对象替换
- 某种程度上增加了设计的复杂性
接口实例
Java代码- /**
- * Interface IManeuverable provides the specification
- * for a maneuverable vehicle.
- */
- public interface IManeuverable {
- public void left();
- public void right();
- public void forward();
- public void reverse();
- public void climb();
- public void dive();
- public void setSpeed(double speed);
- public double getSpeed();
- }
- public class Car implements IManeuverable {
- // Code here.
- }
- public class Boat implements IManeuverable {
- // Code here.
- }
- public class Submarine implements IManeuverable {
- // Code here.
- }
/*** Interface IManeuverable provides the specification* for a maneuverable vehicle.*/public interface IManeuverable {public void left();public void right();public void forward();public void reverse();public void climb();public void dive();public void setSpeed(double speed);public double getSpeed();}public class Car implements IManeuverable {// Code here.}public class Boat implements IManeuverable {// Code here.}public class Submarine implements IManeuverable {// Code here.}
下面的方法只需要知道参数是机动车辆而不需要关心它到底属于哪个类(Car, Boat, Submarine)或者类所在的层次结构。
Java代码- public void travel(IManeuverable vehicle) {
- vehicle.setSpeed(35.0);
- vehicle.forward();
- vehicle.left();
- vehicle.climb();
- }
public void travel(IManeuverable vehicle) {vehicle.setSpeed(35.0);vehicle.forward();vehicle.left();vehicle.climb();}
总结
使用该原则可以带来更灵活的设计,因为当我们想替换一个类的实现时,不需要改变原来的代码。
面向对象设计原则六 - 针对接口编程,而不是针对实现编程 - 森林狼 - JavaEye技...
面向对象的设计原则三 - 接口隔离原则 - 森林狼 - JavaEye技术网站
面向对象的设计原则一 开放-关闭原则 - 森林狼 - JavaEye技术网站
面向对象的设计原则五 - 依赖倒转原则 - 森林狼 - JavaEye技术网站
面向对象设计原则七 - 组合优先于继承 - 森林狼 - JavaEye技术网站
PHP中实现面向对象编程
面向对象编程五大原则
面向接口编程
面向接口编程
面向对象编程五大原则 - Marvin - CSDN博客
面向对象设计原则
面向接口编程详解(二)——编程实例
面向接口编程详解(二)——编程实例
针对Ti的DSP C语言编程
针对Ti的DSP C语言编程
Delphi 中面向对象编程之我见
面向对象多线程编程之 前言
面向对象多线程编程之 前言
C语言实现面向对象编程 BY Junho - 中山大学信息发展中心数媒部 - 博客园
面向接口编程详解(三)——模式研究
【原创】面向对象的Jscript - 前台制作与脚本专栏 - 经典论坛 网页-网站-制作-设计-编程
电脑培训:理解面向对象编程的简单例子
面向对象的设计原则-类设计原则
61条面向对象设计的经验原则61条面向对象设计的经验原则