process_file("audio.mp3") # 输出:Processing audio file: audio.mp3 在这个例子中,如果我们需要添加对新的文件类型的处理,我们只需要实现一个新的FileProcessor子类,并在get_file_processor函数中添加相应的逻辑。我们不需要修改任何现有的代码,这符合OCP原则的要求。这样,我们的代码对扩展是开放的,对修改是封闭的。
软件开发过程中需求是一定会变化的,所以我们在代码设计的时候要注意代码的稳定性,以减低需求变化带来的不良影响,以便提高系统稳定性和灵活性,而开放封闭原则正是为了处理这些问题而生。我们简单以商店价格变化为例子来描述为什么要遵守开放封闭原则。 代码语言:javascript 复制 //商品接口interfaceGoods{//获得商品名称Strin...
二、OCP举例: 1、例子一 假如我们要写一个工资税类,工资税在不同国家有不同计算规则,如果我们不坚持OCP,直接写一个类封装工资税的算税方法,而每个国家对工资税的具体实现细节是不尽相同的!如果我们允许修改,即把现在系统需要的所有工资税(中国工资税、美国工资税等)都放在一个类里实现,谁也不能保证未来系统不...
开放封闭原则就相对的解决了这个问题,它强调的是你设计的模块应该从不改变(绝对不改变是不可能的,只能相对少改动)。当需求变化时,你可以通过添加新的代码来扩展这个模块的行为,而不去更改那些已经存在的可以工作的代码。 举一个简单的开放封闭原则的例子:书店售书打折。 书店周年庆打折售书,40块以上的书打7折,40...
java开放封闭原则例子 理解Java的开放封闭原则 开放封闭原则(Open/Closed Principle)是面向对象设计的核心原则之一。根据这一原则,软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。这意味着我们应该通过添加新代码来实现功能扩展,而不是通过修改已有代码。
二、例子一,繁忙的银行业务员 根据代码会发现,如果增加了其他业务员,就需要在BankWorker中添加一个业务方法,也让银行业务员“业务”繁忙,容易混乱,扩展性也不好 2.1 BankWoker //银行业务员 public class BankWorker { //负责存款业务 public void saving() { ...
详细介绍:为了更好地理解开放封闭原则,让我们通过一个实际的例子来说明。假设我们有一个图形绘制程序,其中包含一个绘制图形的类Shape,现在我们需要在系统中加入新的图形类型,比如正方形。传统的设计方式是直接修改Shape类,添加对正方形的绘制方法。然而,这样的做法违背了开放封闭原则,因为我们直接修改了现有代码,可能导致...
当然这只是一个简单的例子来。在实际程序中,类似DrawAllShapes函数中的switch语句会在应用程序的各个函数中重复不断地出现。每个函数中switch语句负责完成的工作差别甚微。这些函数中,可能有负责拖拽形状对象的,有负责拉伸形状对象的,有负责移动形状对象的,有负责删除形状对象的,等等。在这样的应用程序中增加一种...
在这个例子中,如果我们需要添加对新的文件类型的处理,我们只需要实现一个新的FileProcessor子类,并在get_file_processor函数中添加相应的逻辑。我们不需要修改任何现有的代码,这符合OCP原则的要求。这样,我们的代码对扩展是开放的,对修改是封闭的。 🔨 四、OCP在实际项目中的应用 ...