目录

简介

定义

举例


简介

开闭原则(Open Closed Principle),简称OCP。

定义

软件实体应该对扩展开放,对修改关闭。何为软件实体?主要包括项目或软件产品按照一定的逻辑规则划分的模块,抽象,类,方法。实质是通过扩展来实现变化。

举例

一年一度的11又要来了,鸡冻哇。要是平时物品是正常售出,就像这样

public interface IGood {public String getName();public int getPrice();
}public class Good implements IGood {private String name;private int price;public Good(String _name, int _price) {name = _name;price = _price;}public String getName() {return name;}public int getPrice() {()return price;}
}public class soldGoods() {private final static ArrayList<IGood> goodList = new ArrayList<>();static {goodList.add(new Good("牙刷", 3));goodList.add(new Good("薯片", 10));}public static void main(String[] args) {for(IGood good : goodList) {System.out.pirntln(good.getName + ":" + good.getPrice + "元");}}
}

但现在是11呀,打折,锦鲤...

public class offGood extend Good {public offGood(String _name, int _price) {super(_name, _price);}@Overridepublic int getPrice() {int price = super.getPrice();int offPrice = 0;if(price > 100) {offPrice = price*80/100;}else {offPrice = price*70/100;}return offPrice;}
}

这时只需要把主函数中staic内容进行修改即可

static {goodList.add(new offGood("牙刷", 3));goodList.add(new offGood("薯片", 10));
}

六大设计原则之OCP相关推荐

  1. 设计模式 - 六大设计原则之OCP(开闭原则)

    文章目录 概述 Case 接口定义 接口实现 Bad Impl Better Impl 概述 Open-Close Principle 在面向对象编程领域中,开闭原则规定软件中的类.对象.模块和函数对 ...

  2. 【设计模式学习笔记】1:认识六大设计原则(OCP,LSV,DIP,ISP,LKP,SRP)

    [1]开闭原则(Open Close Principle) 简述 对扩展是开放的,对修改是关闭的.即软件应当通过扩展来实现变化,而不是通过修改现有的代码. 理解 Java中的继承extends关键字本 ...

  3. IOS设计模式的六大设计原则之开放-关闭原则(OCP,Open-Close Principle)

    定义 一个软件实体(如类.模块.函数)应当对扩展开放,对修改关闭. 定义解读 在项目开发的时候,都不能指望需求是确定不变化的,大部分情况下,需求是变化的.那么如何应对需求变化的情况?这就是开放-关闭原 ...

  4. [转] 设计模式的六大设计原则

    转载说明: 感谢原作者吕震宇老师的分享. 原文参考链接:https://www.cnblogs.com/zhenyulu/category/6930.html? 本次转载只用于个人学习使用,并不涉及商 ...

  5. 【0718作业】收集和整理面向对象的六大设计原则

    面向对象的六大设计原则 (1)单一职责原则--SRP (2)开闭原则--OCP (3)里式替换原则--LSP (4)依赖倒置原则--DIP (5)接口隔离原则--ISP (6)迪米特原则--LOD - ...

  6. JAVA六大设计原则 和 23种设计模式

    相关书籍:<大话设计模式>.<Java设计模式>.<设计模式之禅>.<研磨设计模式>.<Head First 设计模式> JAVA六大设计原 ...

  7. 设计模式之六大设计原则【入门】

    设计模式之六大设计原则 1 开闭原则 Open Closed Principle,OCP 1.1 概念 1.2 软件实体 1.3 开闭原则的作用 2. 单一职责原则 Single responsibi ...

  8. 设计模式的六大设计原则

    设计模式的六大设计原则 1. 开闭原则 1.1 开闭原则:Open Closed Principle,OCP 1.2 开闭原则的作用 2. 单一责任原则 2.1 单一职责原则:Single respo ...

  9. 面向对象六大设计原则上

    @TOC面向对象六大设计原则 最近准备java面试,发现SSM框架里蛮多知识点,比如Spring中IOC,DI来源于面向对象的六大原则,了解六大原则有助于更深入理解java的设计原理.网上资料很多,整 ...

最新文章

  1. linux后台执行命令:amp;与nohup的用法
  2. linux ssh非交互脚本,sshpass实现shell脚本非交互密码验证
  3. Mysql用户访问工作原理
  4. struts2 action中result参数详解
  5. MySQL中Join算法实现原理通俗易懂
  6. STL模板整理 priority_queue
  7. centOS7查看防火墙状态
  8. int转字符串_python3基础01数值和字符串(一)
  9. spring源码:注册后置处理器
  10. 发那科机器人注油_东莞发那科工业机器人维保中心
  11. 单片机 STC8H1K08-36I TSSOP20 - 低压检测
  12. Vue中阿里图标的使用
  13. Excel成神之道-005-用countif统计客人第几次进店
  14. 电子密码锁程序C语言,基于C语言STC89C52单片机电子密码锁的系统设计与仿真
  15. JDK8中Lambda 表达式语法糖脱糖[非原创]
  16. Elesticsearch(es)聚合搜索(入门到精通)4
  17. Linux使用tar命令进行磁带备份
  18. 数学建模论文写作学习——数模论文概述
  19. mysql查询带序列号
  20. matlab多元方程整数解,matlab多元非线性方程组解法

热门文章

  1. 【C++基础语法 2】——类型转换[自动类型转换/强制类型转换]
  2. 38、消防联动控制系统
  3. 基于主题模型的专利文本主题挖掘与应用研究- 专利文本主题挖掘方法
  4. 一分钟入门Java面向对象 为什么要创建对象?
  5. 肉这么做越吃越瘦!鲜嫩多汁!每次只需 5 分钟,比叫外卖还快!
  6. 《数循环》笔记:未来属于终身学习者
  7. redis学习之集群部署
  8. 国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer
  9. 哪些pdf编辑软件值得下载?办公常备软件
  10. TeX Live + TeXstudio macOS 下载及安装