美文网首页
六大原则-开闭原则

六大原则-开闭原则

作者: 程序男保姆 | 来源:发表于2020-04-19 21:21 被阅读0次

开闭原则

  • 定义: 一个软件实体如类,模块,和函数应该对扩展开放,对修改关闭。

  • 用抽象构建框架,用实现扩展细节

  • 优点: 提高软件系统的可复用性及可维护性

开闭原则.png
package com.design.principle.openclose;

/***
 * 课程接口
 */
public interface ICourse{

    /** 获取课程ID */
    public Integer getId() ;

    /** 获取课程名称 */
    public String getName() ;

    /** 获取课程价格 */
    public Double getPrice() ;

}

package com.design.principle.openclose;

/***
 * Java 课程
 */
public class JavaCourse implements ICourse {

    /** 课程ID */
    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 id;
    }

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

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

    @Override
    public String toString() {
        return "JavaCourse{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

package com.design.principle.openclose;

/***
 *  Flutter 课程
 */
public class FlutterCourse implements ICourse {

    /** 课程ID */
    private Integer id;

    /** 课程名称 */
    private String name;

    /** 课程价格 */
    private Double price;


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


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

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

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

    @Override
    public String toString() {
        return "FlutterCourse{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

package com.design.principle.openclose;

/***
 * Java 课程
 */
public class JavaCourseDiscount extends JavaCourse {


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

    /***
     * 折扣后价格
     * @return
     */
    public Double getDiscountPrice() {
        return super.getPrice()*0.8;
    }



}

package com.design.principle.openclose;

public class Test {

    public static void main(String[] args) {

        // 1 获取Java课程的信息

        ICourse course = new JavaCourse(1,"java",12.00);

        System.out.println("Java课程id"+course.getId());
        System.out.println("Java课程name"+course.getName());
        System.out.println("Java课程price"+course.getPrice());

        System.out.println();
        System.out.println();
        System.out.println();

        // 要求只对Java课程的价格打8折

        ICourse courseDiscount = new JavaCourseDiscount(1,"java",12.00);
        JavaCourseDiscount javaCourseDiscount = (JavaCourseDiscount) courseDiscount;
        System.out.println("Java课程id"+javaCourseDiscount.getId());
        System.out.println("Java课程name"+javaCourseDiscount.getName());
        System.out.println("Java课程price"+javaCourseDiscount.getPrice());
        System.out.println("Java课程discountPrice"+javaCourseDiscount.getDiscountPrice());

    }


}

相关文章

  • 开闭原则

    个人博客原文:开闭原则 设计模式六大原则之六:开闭原则。 简介 姓名 :开闭原则 英文名 :Open Closed...

  • 六大设计原则 - 开闭原则【Open Close Princip

    六大设计原则 单一职责原则 里式替换原则 依赖倒置原则 接口隔离原则 迪米特原则 开闭原则 开闭原则 定义: So...

  • iOS开闭原则和替换原则

    什么叫开闭原则? 六大模式设计原则之一的开闭原则是比较重要的,开闭原则其实就是“抽象构建框架,实现扩展细节...

  • 设计模式解析

    设计模式的六大原则 总原则:开闭原则(Open Close Principle)  开闭原则就是说对扩展开放,对修...

  • Android 设计模式:Java设计原则+设计模式 概述

    一、设计模式的六大原则 总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对...

  • iOS 六大设计原则

    iOS六大设计原则:单一职责原则(Single Responsibility Principle)、开闭原则(Op...

  • 设计模式

    设计模式之六大原则 1,开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭,...

  • 设计模式六大原则

    设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改...

  • 设计模式原则

    设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭...

  • 模式导论

    设计模式的六大原则 开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭...

网友评论

      本文标题:六大原则-开闭原则

      本文链接:https://www.haomeiwen.com/subject/mrribhtx.html