面向对象的设计原则_针对接口编程
?
- /*** 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)或者类所在的层次结构。
?
- public void travel(IManeuverable vehicle) {vehicle.setSpeed(35.0);vehicle.forward();vehicle.left();vehicle.climb();}
?
?
总结
使用该原则可以带来更灵活的设计,因为当我们想替换一个类的实现时,不需要改变原来的代码。