首页 > 其他分享 >开闭原则

开闭原则

时间:2023-05-10 10:55:26浏览次数:42  
标签:name 原则 price 开闭 课程 Integer public String

开闭原则(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;
}
}

标签:name,原则,price,开闭,课程,Integer,public,String
From: https://www.cnblogs.com/sakura114/p/17387270.html

相关文章

  • 操作系统(3.3.6)--基于公平原则的调度算法
    1.保证调度算法保证处理机分配的公平性。如果在系统中有n个相同类型的进程同时运行,为公平起见,须保证每个进程都获得相同的处理机时间1/n。(1)跟踪计算每个进程已执行的处理时间;(2)计算每个进程应获得的处理机时间;(3)计算进程获得处理机时间的比率;(4)比较各进程获得处理机时间的比率......
  • Pytest用例设计原则
    用例设计原则文件名为test_*.py和*_test.py以test_开头的函数以Test开头的类,test_开头的方法,并且不能有__init__方法所有的package包必须有__init__文件断言使用assert常用断言assertxx判断xx为真assertnotxx判断xx不为真assertainb判断b包含aasserta==b......
  • 设计原则
    一单一职责原则职责:引起变化的原因SRP原则:一个对象(方法)只做一件事SRP原则的应用难点就是如何去分离职责1何时应该分离职责并不是所有职责都应该一一分离如果随着需求变化,职责总是同时变化的就不必分离创建xhr对象&发送xhr请求职责的变化轴线仅当他们确定会......
  • 禅道软件设计六大原则
    第一原则,长周期原则想尽一切办法让产品的生命周期大于团队的生命周期。每个产品都有自己的生命周期,每个团队也都有自己的生命周期,这是客观规律。但我总会觉得用户和客户因为信任选择使用禅道,我们就要为用户和客户负责,这是我放不下的责任和义务。一方面我努力赚钱,让团队持续发展,为我......
  • 禅道软件设计六大原则
    每一个产品都是为了解决某个问题而产生的,在诞生之初都是有自己的目标和原则的。只不过随着时间发展,产研团队慢慢更换,很多东西就慢慢丢掉了,改变了。所以在设计完善禅道项目管理软件的时候,我一直都比较恐慌,唯恐哪一天禅道也变成了自己不喜欢的样子。于是也有了一些自己固执地坚持,不......
  • [设计模式]设计原则
    参考:https://zhuanlan.zhihu.com/p/24614363https://zhuanlan.zhihu.com/p/422737773https://zhuanlan.zhihu.com/p/141459645面向对象设计原则1、开闭原则:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。作用:1......
  • 《花雕学AI》AI 人工智能伙伴关系的指南:遵循原则,实现实践,展望未来
    引言:人工智能(AI)是指由人造的机器或系统所展现出的智能,它可以模拟或扩展人类的认知功能,如学习、推理、感知、交流等。人工智能的发展和应用已经深刻地影响了社会、经济、文化和政治等各个领域,同时也带来了一系列的伦理和社会问题,如隐私、安全、责任、公平、透明等。为了应对这些......
  • 软件开发、设计、架构的五大原则
    唯一不变的就是变化本身。我们经常讲的系统、子系统、模块、组件、类、函数就是从逻辑上将软件一步步分解为更细微的部分,即逻辑单元,分而治之,复杂问题拆解为若干简单问题,逐个解决。逻辑单元内部、外部的交互会产生依赖,从而产生了内聚、耦合概念。内聚主要描述逻辑单元内部,耦合......
  • 软件开发、设计、架构的其他原则
    LOD:迪米特法则(LawofDemeter)CRP:合成复用原则(CompositeReusePrinciple)DRY:不要重复你自己原则(Don’tRepeatYourselfPrinciple)KISS:KISS原则(KeepItSimpleandStupidPrinciple)YAGNI:你不需要它原则(Youaren'tgonnaneeditPrinciple)迪米特法则又叫最少......
  • 吴恩达Prompt课 - 02 构建原则
    吴恩达和OpenAI一起制作了节一个半小时的,面向开发者的关于《ChatGPTPromptEngineering》的课,对自己Prompt提高非常有帮助。英文课程地址:https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/我反复学习后,针对每小节的例子和关键部分按......