加载中...

开闭原则

开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
实现开闭原则的核心思想就是面向抽象编程,现在我们思考一个场景,有一个课程类,课程类作为父类,有许多子类,比如java课程,python课程,前端课程...
课程类中有价格属性定义,子类继承父类的价格属性,现在子类新增一个业务场景,比如打折扣,以下是代码示例

点击查看代码
public interface ICourse {
        Integer getId();
        String getName();
        Double getPrice();
    }

public class JavaCourse implements ICourse {
        private Integer Id;
        private String name;
        private Double price;

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

        public Integer getId() {
            return this.Id;
        }

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

        public Double getPrice() {
            return this.price;
        }
    }
假设现在的打折扣活动,如果修改 JavaCourse 中的 getPrice()方法,则会存在一定的风险,可能影响其他地方的调用结果 如何在不修改以前代码的情况下,完成需求,我们再写一个处理优惠逻辑的类,JavaDiscountCourse 类专门用来处理java课程的打折
点击查看代码
public class JavaDiscountCourse extends JavaCourse {
        public JavaDiscountCourse(Integer id, String name, Double price) {
            super(id, name, price);
        }
        public Double getOriginPrice(){
            return super.getPrice();
        }
        public Double getPrice(){
            return super.getPrice() * 0.5;
        }
    }
这样子就完成了开闭原则的一个实践
posted @ 2023-05-10 10:49  铃芽之旅  阅读(31)  评论(0)    收藏  举报