亲爱的同学,你好,我是geely老师的助教。

你这样挺不错的。和老师的设计有不同的思路,赞。我再修改一下,看看能不能还有不一样的想法。public class DiscountCourse implements ICourse{

private ICourse course;

//折扣

private double discount;

public JavaDiscountCourse(ICourse course, double discount) {

this.course = course;

this.discount = discount;

}

@Override

public String getName() {

return this.course.getName();

}

@Override

public double getPrice() {

return this.course.getPrice() * this.discount;

}

public double getOriginPrice() {

return this.course.getPrice();

}

}

java open course_关于开闭原则 JavaDiscountCourse 类的设计相关推荐

  1. 面向对象软件设计原则【JAVA】(开闭原则、里氏代换、依赖倒转、接口隔离、迪米特法则、合成复用原则)

    软件设计原则[JAVA](开闭原则.里氏代换.依赖倒转.接口隔离.迪米特法则.合成复用原则) 1.开闭原则 2.里氏代换原则 3.依赖倒转原则 4.接口隔离原则 5.迪米特法则 6.合成复用原则 1. ...

  2. 关于Java面向对象程序设计原则之一——开闭原则的思考与分享

    整理日期:2022-05-27 目录 一.开闭原则 二.为什么使用开闭原则 三.如何在程序设计中体现开闭原则 一.开闭原则 开闭原则(Open-Closed Principle, OCP)是指一个软件 ...

  3. 设计原则 - 开闭原则

    目录 概念 实例 代码实例 需求变更 开闭原则的实现 源码 概念 开闭原则的定义:Open-Closed Principle,OCP,一个软件实体应当对扩展开放,对修改关闭. 开闭原则的中心思想:用抽 ...

  4. 01.开闭原则 Open-Closed Principle

    1.定义 指一个软件实体如类.模块和函数应该 对扩展开放,对修改关闭.所谓的开闭,也正是对扩展和修改两个行为的一个原则.强 调的是用抽象构建框架,用实现扩展细节. 2.介绍 开闭原则,是面向对象设计中 ...

  5. java开闭原则 例子_解析Java编程中设计模式的开闭原则的运用

    开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活的系统. 定义: 一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. S ...

  6. java设计模式之设计原则①开闭原则

    定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 强调的是用抽象构建框架,用实现扩展细节. 优点:提高软件系统的可复用性及可维护性 例如: 创建一个Course接口 获取id方法 获取n ...

  7. java开闭原则代码实现_如何提高你的代码设计能力?

    前段时间零零碎碎把设计模式梳理了一遍,这个想法的初衷是基于JDK15的发布,阅读一些源码,一些设计很熟悉但是总是想不起是什么设计模式! 我们日常开发或者在做底层架构设计时,更应该留意和关注代码层面还有 ...

  8. java开闭原则实现代码_向对象的六大原则

    前言 我们都知道面向对象有六大原则,23种设计模式.它们可以指导我们如何写出更加优秀的代码.六大原则是基础,我们面向对象编程应该尽量遵从这六大原则,才能写出优秀的代码. 23种设计模式是前人为我们总结 ...

  9. Java设计模式之开闭原则(Open-Closed Principle)

    Software entities like classes, modules and functions should be open for extension but closed for mo ...

最新文章

  1. DevicePass-through及网卡的直接分配在Xen里面的实现
  2. Agile Controller产品概述
  3. java 自定义注解
  4. undefined control sequence_GeForce NOW在KDDI的帮助下提供服务:《Control》加入游戏库
  5. 两种AIDL用法分析(原)
  6. BZOJ 1047: [HAOI2007]理想的正方形 单调队列瞎搞
  7. Apache Thrift快速入门教程
  8. 深圳市南山区学计算机的视频课程,新手学电脑全套视频教程(1-27集)
  9. centos安装apache+mysql_CentOS7安装apache+mysql+php环境
  10. Win10如何彻底关闭Hyper-V(真实可用,本人亲测)
  11. 两个经纬度偏角_怎么根据两个经纬度计算出航向
  12. Lenovo(IBM) 使用BoMC工具制作微码升级U盘刷新System x系列
  13. Google(谷歌)走了我们该用什么呢?
  14. 2009年7月最新的精辟句子和2009最贫嘴的15句话
  15. 使用隐马尔科夫模型实现分词
  16. [面向对象程序设计] 汽车租赁系统(Java实现)
  17. 【今日CV 计算机视觉论文速览 第140期】Wed, 3 Jul 2019
  18. RBF架构下如何解析路径
  19. V-Ray 2.00.02 最新中文汉化版下载,适用于3dsmax 9.0/2008/2009/2010/2011所有版本, 中文v ray下载
  20. APP、小程序、H5

热门文章

  1. 北大文科生能选计算机专业么,文科计算机基础和文科计算机专题
  2. java换行符分隔字符串_Java 实例 – 字符串分隔(StringTokenizer) | 菜鸟教程
  3. 03.Python基础--控制流语句-顺序结构-判断结构-循环语句
  4. Arrays.sort()方法
  5. 热释电传感器三个引脚_Adafruit的树莓派教程:热释电传感器感知运动
  6. centos7 安装git_Gitlab安装及使用
  7. c语言让数组地址对齐,C语言实现比特位数组在目标空间左右居中对齐三种方式...
  8. go编译成c语言,Go语言是怎么完成编译的
  9. Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) A Dead Pixel
  10. redis过期策略和淘汰机制你知道多少?