七个原则1-开闭原则

七个原则1-开闭原则

  • 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
  • 用抽象构建框架,用实现扩展细节
  • 优点:提高软件系统的可复用性及可维护性。

示例-开闭原则UML图

示例:设计一个课程接口ICourse,并且实现一个Java课程实现类JavaCourse,当增加打折需求并要求展示原价时如何设计? 增加JavaCourse的子类JavaDiscountCourse,重写获取getPrice方法,增加getOriginPrice方法。遵循对扩展开放,对修改关闭

示例-开闭原则UML

接口:Course

public interface ICourse {    
    Integer getId();    
    String getName();    
    Double getPrice();
}

类:JavaCourse

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;
    }

    @Override
    public Integer getId() {
        return this.id;
    }
    @Override
    public String getName() {
        return this.name;
    }
    @Override
    public Double getPrice() {
        return this.price;
    }
}

类:JavaDiscountCourse

public class JavaDiscountCourse extends JavaCourse {
    public JavaDiscountCourse(Integer id, String name, Double price) {
        super(id, name, price);
    }

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

测试类

public class Test {
    public static void main(String[] args) {
        ICourse iCourse = new JavaDiscountCourse(99,"Java设计模式学习",998d);
        JavaDiscountCourse javaCourse = (JavaDiscountCourse)iCourse;

        System.out.println("课程ID:"+javaCourse.getId()
                +"\n课程名称:"+javaCourse.getName()
                +"\n课程折扣价格:"+javaCourse.getDiscountPrice()
                +"\n课程价格:"+javaCourse.getPrice());
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文出自《Android源码设计模式解析与实战》中的第一章。 1、优化代码的第一步——单一职责原则 单一职责原则的...
    MrSimp1e0阅读 5,774评论 1 13
  • 转载自 设计模式六大原则[http://www.uml.org.cn/sjms/201211023.asp#3] ...
    厨子阅读 4,744评论 2 5
  • 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 ...
    Jabir_Zhang阅读 3,795评论 0 3
  • 程序设计的6大原则: 单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则 从根本学好,理解为什么要...
    silencefun阅读 6,993评论 1 4
  • 单一职责原则 (SRP) 全称 SRP , Single Responsibility Principle 单一职...
    米莉_L阅读 5,716评论 2 5