软件架构设计原则之开闭原则


软件架构设计原则之开闭原则


理解所谓的开闭原则,其实核心就是两个字开和闭,开是对拓展开放,闭是对修改关闭,针对的对象是类、模块、函数等,它强调的是用抽象构建框架,用实现拓展细节,可以提高软件的可复用性和可维护性。开闭原则是面向对象设计中最基础的设计原则,充斥在我们项目的任何地方。

开闭原则同样也是来源于生活中【软件开发真是离不开生活啊】,例如你去了一家公司上班,公司规定每天必须工作8小时,意思就是说对于每天工作8小时这个规则是关闭,但是早来早走,晚来晚走,工作时间段飘逸是开放的。

开闭原则的核心思想就是面向抽象编程,我们来设计一下代码看看:

1.创建一个课程接口类,有课程名称,课程ID,课程价格三个字段

public interface ICource {


    Integer getId();

    String getName();

    Double getPrice();


}

2.课程可能有很多种,例如Java课程、大数据、人工智能等,现在创建一个java课程类

public class JavaCource implements ICource {

    private Integer id;

    private String name;

    private Double price;

    public JavaCource(Integer id, String name, Double price){
        this.id = id;
        this.name = name;
        this.price = price;
    }

    @Override
    public Integer getId() {
        return this.id;
    }

    @Override
    public String getName() {
        return this.name;
    }

    @Override
    public Double getPrice() {
        return this.price;
    }
}

3.现在突然间老板说要给java课程打折优惠,我们第一想到的是修改javaCource类,但是课程类可能会在很多地方用,我们直接修改它可能存在风险,根据开闭原则,于是乎我们建一个Java优惠课程类。

ublic class JavaDiscountCource extends JavaCource {

    public JavaDiscountCource(Integer id, String name, Double price){
        super(id, name, price);
    }

    public Double getOriginPrice(){
          return super.getPrice();
    }

    public Double getDiscountPrice(Double count){
        return super.getPrice() * count;
    }

}

好了,以上就是开闭原则解释和示例了。