开闭原则指的是一个软件实体应该对扩展开放,对修改关闭。
Software entities should be open for extension,but closed for modification.
满足“开-闭原则”的设计可以给软件体统2个无可比拟的优越性
1、通过扩展已有的软件系统,可以提供新的行为,以满足软件的新需求,是变化中的软件系统有一定的适应性和灵活性。
2、已有的软件模块,特别是最重要的抽象层模块不能修改,这就使变化中的软件系统有一定的稳定性和延续性。
对可变性的封装原则
(1)可变性不应散落到代码的不同角落里,而应该封装到一个对象里。同一可变性的不同表现意味同一继承等级结构中的具体子类。
继承应该看做是封装变化的方法
(2)一种可变不应与另一种可变混在一起,类图的继承关系一般不会超过两层,如超过意味着两种不同的可变性混合到了一起。
与其他设计原则的关系
1、里氏代换原则
里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。一般而言,违反里氏代换原则的,也违背“开-闭”原则,反过来并不一定成立。
2、依赖倒转原则
要依赖于抽象,不要依赖于实现。
“开-闭”原则是目标,而达到这一目标的手段是依赖倒转原则。换言之,要想实现“开-闭”原则,就应当坚持依赖倒转原则。违反依赖倒转原则,就不可能达到“开-闭”原则的要求。
3、合成/聚合复用原则
要尽量使用合成/聚合,而不是继承关系达到复用的目的。遵守合成/聚合原则是实现“开-闭”原则的必要条件;违反这一原则就无法使系统实现“开-闭”原则这一目标。
4、迪米特法则
一个软件实体应当与尽可能少的其他实体发生相互作用。
5、接口隔离原则
应当为客户端提供尽可能小的单独的接口,而不是提供大的总接口。
显然,接口隔离原则与广义的迪米特法则都是对一个软件实体与其他的软件实体的通信的限制。广义的迪米特法则要求近可能限制通信的宽度和深度。接口隔离原则索要限制的是通信的宽度,也就是说,通信应当尽可能地窄。
分享到:
相关推荐
Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记Oracle-11g-OCP-051培训笔记
开闭原则(Open-Closed Principle,简称OCP)是软件设计模式中的一个基本原则,由艾兹格·迪米特里斯·伯纳斯-李提出。这个原则指出,软件实体(类、模块、函数等)应当对扩展开放,对修改关闭。换句话说,当软件...
开闭原则(Open-Closed Principle,简称OCP)是面向对象设计中的一个核心原则,它在软件工程领域具有举足轻重的地位。该原则由 Bertrand Meyer 在其著作《Object-Oriented Software Construction》中提出,旨在提高...
开闭原则(Open-Closed Principle,OCP)的核心思想是:“软件实体(如类、模块、函数等)应当对扩展开放,对修改关闭”。这意味着,当需求改变时,我们应尽量通过扩展已有代码,而不是修改已有的代码来实现新功能。...
4. Program Global Area (PGA)及其管理 PGA是每个服务器进程的私有内存区域,用于存储程序变量和数据。关于PGA及其管理,选项AB正确: - A) PGA AGGREGATE LIMIT是一个硬限制,设定任何单个进程的PGA大小上限,有助...
开闭原则(Open-Closed Principle,OCP)是软件工程中的一个基本原则,由Bertrand Meyer在1988年提出,它是面向对象设计的核心之一。这个原则规定了软件实体(如类、模块、函数等)应该对扩展开放,对修改关闭。这...
云原生培训-openshift-ocp3红帽原厂培训ppt-完整版: 容器平台OPENSHIFT概览 部署容器应用
OCA-OCP考试指南合集,官方文档
标题提到了“Oracle 1z0-052题库OCP考试题”,而描述则是强调了题库的覆盖率和考试通过情况。接下来我将详细解说与Oracle 1Z0-052认证及OCP(Oracle Certified Professional)相关的知识点。 ### Oracle 1Z0-052...
### OCP原则详解 #### 开放-封闭原则(OCP)概览 开放-封闭原则(Open-Closed Principle, OCP)是软件工程中一个至关重要的设计原则,它由Bertrand Meyer于1988年提出,并由Robert C. Martin进一步阐述和发展。OCP的...
1Z0-053 ocp考试参考,本文档只作为参考用书,还请实际操作模拟,以获取对应认证能力。
"Oracle体系结构与OCp笔记" Oracle体系结构是Oracle数据库管理系统的核心组件之一,它是Oracle数据库的基础架构。Oracle体系结构主要由三部分组成:数据库(Database)、实例(Instance)和oracle网络架构。 ...
该怎么使用 Java 设计模式编程中的 OCP 开闭原则? 在软件开发中,开闭原则是面向对象设计中最基础的设计原则之一,它指导我们如何建立稳定灵活的系统。开闭原则定义:一个软件实体如类、模块和函数应该对扩展开放...
Oracle 19c是Oracle数据库的一个重要版本,其OCP(Oracle Certified Professional)认证是对数据库管理员和专业人士在Oracle 19c技术领域的专业知识的认可。"1Z0 083"是Oracle为测试和评估这些专业技能而设立的考试...
Oracle 19C是Oracle数据库的一个重要版本,OCP(Oracle Certified Professional)是Oracle公司针对其产品提供的专业认证,旨在证明个人在Oracle数据库管理、优化和运维方面的技能和知识。以下是对Oracle 19C OCP相关...
Intel Ethernet Network Adapter E810-XXVDA4 是一款基于 OCP 3.0 规范的智能网卡,旨在提高云计算、企业和通信应用中的网络性能和效率。该网卡采用四个 25GbE SFP28 端口,支持多种配置方式,以满足不同应用场景的...
《Oracle数据库10g RAC OCP认证详解》 Oracle Database 10g Real Application Clusters(RAC)是Oracle公司推出的一种高可用性解决方案,它允许多个实例同时访问同一物理数据库,从而实现了真正的集群数据库环境。1...
#### 四、Oracle 11g DBA-OCP 认证考试途径 根据给定的部分内容,Oracle 11g DBA-OCP认证提供了三种不同的考试途径,具体如下: 1. **途径一**: - **OCA**:1z0-007 Introduction to Oracle9i: SQL + 1z0-052 ...
第4章 数据库利器--SQL 第5章 只能管理--用好集成管理环境 第6章 运行维护--DBA的日常工作 第7章 数据库管理--常用数据方案对象 第8章 安全管理--给用户授权 第9章 编程进阶--PL.SQL 第10章 系统开发--VB+Oracle 9i ...