软件架构设计原则之开闭原则
软件架构设计原则之开闭原则
理解所谓的开闭原则,其实核心就是两个字开和闭,开是对拓展开放,闭是对修改关闭,针对的对象是类、模块、函数等,它强调的是用抽象构建框架,用实现拓展细节,可以提高软件的可复用性和可维护性。开闭原则是面向对象设计中最基础的设计原则,充斥在我们项目的任何地方。
开闭原则同样也是来源于生活中【软件开发真是离不开生活啊】,例如你去了一家公司上班,公司规定每天必须工作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; } }
好了,以上就是开闭原则解释和示例了。