搬砖方法论:Open Closed Principle(开闭原则又叫OCP原则)

2024-02-09 21:48

本文主要是介绍搬砖方法论:Open Closed Principle(开闭原则又叫OCP原则),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开放和关闭到底是什么

我们可以看一下对于开闭原则的定义:
软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。
或者更简洁:对扩展开放,对修改关闭。

其实我们可以把扩展和修改进行细分。

扩展:增加原来没有的功能。修改:对已经含有的功能做规则上的更改。

这里面的开闭是以功能为单位,比较成功的应用就是插件,插件的增加和删除,并不会干扰系统中的其他插件,插件间也相互独立。

如何确保关闭

要确保关闭需要做到一下两点

  • 抽象化:确定其核心功能

  • 轻量化:减少无关依赖项,做到功能最简。

功能交叉、覆盖面广是很难保证关闭的。

如何做到开放

抽象(abstract)和接口(interface)是必不可少的,重写(override)可在原有功能的概念上更改不同的实现方式,接口不仅含有override的好处,而且对功能的划分更加友好,基于扩展函数的使用,可对不同功能进行相应的扩展。
扩展的核心是依赖数量和方向上的控制。

和依赖反转有什么区别

开闭原则的关注点是对功能变更的应对手段。依赖反转的关注点是对分层策略、模块解耦的控制。


更多文章详见主页:www.aihailan.com

这篇关于搬砖方法论:Open Closed Principle(开闭原则又叫OCP原则)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695366

相关文章

JVM内存调优原则及几种JVM内存调优方法

JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。   1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。   2、对JVM内存的系统级的调优主要的目的是减少

Open a folder or workspace... (File -> Open Folder)

问题:vscode Open with Live Server 时 显示Open a folder or workspace... (File -> Open Folder)报错 解决:不可以单独打开文件1.html ; 需要在文件夹里打开 像这样

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E

[轻笔记] pip install : Read timed out. (closed)

添加超时参数(单位秒) pip --default-timeout=10000 install ${package_name}

Open-Sora代码详细解读(1):解读DiT结构

Diffusion Models专栏文章汇总:入门与实战 前言:目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深入解读背后的原理。 目录 DiT相比于Unet的关键改进点 Token化方

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

水处理过滤器运行特性及选择原则浅谈

过滤属于流体的净化过程中不可缺的处理环节,主要用于去除流体中的颗粒物或其他悬浮物。水处理过滤器的原理是利用有孔介质,从流体中去除污染物,使流体达到所需的洁净度水平。         水处理过滤器的滤壁是有一定厚度的,也就是说过滤器材具有深度,以“弯曲通 道”的形式对去除污染物起到了辅助作用。过滤器是除去液体中少量固体颗粒的设备,当流体进入置有一定规格滤网的滤筒后,其杂质被阻挡,而

Open Source, Open Life 第九届中国开源年会论坛征集正式启动

中国开源年会 COSCon 是业界最具影响力的开源盛会之一,由开源社在2015年首次发起,而今年我们将迎来第九届 COSCon! 以其独特定位及日益增加的影响力,COSCon 吸引了越来越多的国内外企业、高校、开源组织/社区的大力支持。与一般企业、IT 媒体、行业协会举办的行业大会不同,COSCon 具有跨组织、跨项目、跨社区的广泛覆盖面,也吸引了众多国内外开源开发者和开源爱好者的关注及参与

数据治理方法论和实践小百科全书

什么是数据治理? 数据治理是指从使用零散数据变为使用统一数据、从具有很少或没有组织流程到企业范围内的综合数据管控、从数据混乱状况到数据井井有条的一个过程。 从范围来讲,数据治理涵盖了从前端业务系统、后端业务数据库再到业务终端的数据分析,从源头到终端再回到源头,形成的一个闭环负反馈系统。从目的来讲,数据治理就是要对数据的获取、处理和使用进行监督管理。 是以服务组织战略目标为基本原则,通过组织成员

kubernetes Pod failed to create fsnotify watcher: too many open files

fs.nr_open: 控制单个进程可以打开的文件描述符的最大数量。单个进程的文件描述符限制可以通过 ulimit 命令来设置。 /proc/sys/fs/nr_open 是一个系统级别的全局参数,表示系统中单个进程能够打开的文件描述符总数的限制。/proc/sys/fs/file-max 系统级别,当前系统可打开的最大数量/etc/security/limits.conf 用户级别,指定用户