【架构师之路】-【01设计模式】-07设计原则之开闭原则

    xiaoxiao2021-03-25  81

    定义:开就是对扩展是开放的;对修改是关闭的。具体而言;当要对一个功能进行添加时;可以在原有的基础上添加一个类;但不允许去修改原有的类。

    举例说明:定义一个Person类 ;里面有一个Driver()的方法;传入一个Car的参数;然后调用Car。move方法

    [java]  view plain  copy   public class Person{              public void drive(Car car) {           car.move();       }   }      public class Car {       puboic void move() {           system.out.println(" 小汽车移动  ");       }   }  

    如果现在我们要开的是一个Mpv呢?修改代码如下:

    [java]  view plain  copy   public class Person{              public void drive(Mpv mpv) {           mpv.move();       }   }      public class Car {       puboic void move() {           system.out.println(" 小汽车移动  ");       }   }      public class Mpv {       puboic void move() {           system.out.println(" mpv移动  ");       }   }  

    这样子的话我们是不是修改了类里的方法参数;当然你也可以重载一个drive()方法。如果我们面向接口编程会是什么样子呢?

    [java]  view plain  copy   public class Person{              public void drive(Vehicle vehicle) {           vehicle.move();       }   }      public interface Vehicle {       public void move();   }      public class Car implements Vehicle{       public void move() {           system.out.println(" 小汽车移动  ");       }   }      public class Mpv implements Vehicle{       puboic void move() {           system.out.println(" mpv移动  ");       }   此处如果要添加一个MPV;则第一种方式为修改参数Car  为Mpv(对修改原有类为关闭的);但第二种将其抽象为交通工具后;只需要添加一个Mpv的类;然后传入对应的参数即可(对扩展是开放的);

    总结 :用抽象构建框架,用实现扩展细节

    转载请注明原文地址: https://ju.6miu.com/read-38787.html

    最新回复(0)