首页 > 其他分享 >如何做到对扩展开发,修改关闭

如何做到对扩展开发,修改关闭

时间:2024-02-27 11:45:50浏览次数:177  
标签:原则 代码 扩展 扩展性 开闭 修改 关闭

这条原则,难以理解,那是因为,”怎么样的带啊吗改动才被定义为扩展“,怎么样的代码才被定义为”修改“,怎么样才算妈祖开闭原则? 修改代码就一定意味着违背开闭原则吗? 等等这些问题都比较难以理解。 

这条原则最有用,那是因为,扩展性是代码质量的重要的衡量标准之一。在23 中经典的设计模式中给,大部分设计模式都是为了解决代码的开闭厕而存在的。 主要遵循的设计原则就是开闭原则。 

定义

软件实体(模块,类,方法) 应该对扩展开发,对修改关闭

这个描述比较简略,如果我们详细的表诉以下,那就是,添加一个新功能应该是在已有的代码上扩展代码,而非修改已有的代码。 他的原则,是在于它的修改是否破坏了的正常运行。 

如何做到开闭原则

在讲解具体方法之前,我们先看一些更加偏向顶层的指导思想,为了尽量的写出扩展性好的代码,我们要时刻具备扩展意思,抽象意识,封装意识,这些意识比任何的开发技巧都重要。 

 

标签:原则,代码,扩展,扩展性,开闭,修改,关闭
From: https://www.cnblogs.com/dousil/p/18036549

相关文章

  • flume进程关闭
    #!/usr/bin/python3#coding=utf-8importsubprocessimportsysimportpsutildefproc(key):foriin['hadoop102','hadoop103']:ifkey=='start':print(f"---------------{i}节点,日志采集开启----------......
  • Redis扩展功能
    Redis事务一次操作执行多条命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入、不许加塞。由于redis只能在执行前检查一组命令的语法错误,在命令执行时出现异常没法全体回滚,所以是弱一致性。multi+exec组合正常执行执行前队......
  • 基于虚拟机字节码的文本修改思路
    基于虚拟机字节码的文本修改思路前言大部分的Gal引擎为了提高运行效率或加密或防止修改等目的都会使用私有的VM,也就是会把明文脚本编译成字节码的脚本,由于是私有的VM所以没有现成的工具来解析,所以为了修改文本,我们不得不分析其VM,而分析VM依据OP数量和结构,工作量会有不同程度的增......
  • mysql-批量修改表的主键id,修改成联合主键
    1.sql脚本一.通过sql脚本,查出所有表的功能,并编写插入修改的联合主键,sqlselect concat('ALTERtable',TABLE_NAME,'DROPPRIMARYKEY',',','ADDPRIMARYKEY(`id`,`org_id`)'';')from information_schema.TABLESwhereTABLE_SC......
  • Linux下修改挂载点的操作方法(linux修改挂载点)
    Linux下修改挂载点的操作方法 Linux是一款多用途操作系统,具备很强的功能。很多时候,我们需要修改Linux下的挂载点,以便让挂载点更加合理、方便文件访问等。下面就介绍在Linux下修改挂载点的操作方法。 首先,我们需要获取已经挂载的设备名称,可以通过以下指令来实现: df-h //......
  • 修改VSCODE默认模板(live template)
    1.问题在使用VSCDOE编写html文件时,对于使用的语言这一块,公司统一要求但是VSCODE默认的是,这就需要我们每次都手改一下,非常麻烦,结合IDEA里面使用livetemplate的经历我就在思考能否修改VSCODE的相关配置文件达到同样的效果呢?首先我找到了这个参考:如何修改vscode模板这里要求我......
  • Linux-实时监控文件修改,并把修改后的文件复制到另一个目录
    1、首先确保环境有安装inotify-tools工具http://www.daileinote.com/computer/linux_cmd/43这里提供一个百度的压缩包链接:https://pan.baidu.com/s/1wp8gsPC7h0qpEj-Ge4xjpQ提取码:8888如果安装校验是否安装成功时,其中有报错,inotifywait:errorwhileloadingsharedlibrar......
  • Redis扩展数据类型&命令
    StreamRedisStream是Redis5.0版本引入的一种新的数据类型,它是一个持久化的、可查询的、可扩展的消息队列服务。Stream类型的数据结构类似于一个日志系统,数据被添加到Stream的末尾,并且每个数据都会被分配一个唯一的序列号,这个序列号是按照时间顺序递增的。主体队列:Stre......
  • gogs修改gitclone 仓库地址
      查看gogsdocker容器的名称dockerps进入容器内部dockerexec-itd1bba9f39a02/bin/bash编辑gogs容器的配置文件 vi/data/gogs/conf/app.ini  [server]DOMAIN= gogs.ceshi.online   #这个是ssh的地址  HTTP_PORT=3000EXTERNAL_......
  • C++ GDAL用CreateCopy()新建栅格并修改波段的个数
      本文介绍基于C++语言GDAL库,为CreateCopy()函数创建的栅格图像添加更多波段的方法。  在C++语言的GDAL库中,我们可以基于CreateCopy()函数与Create()函数创建新的栅格图像文件。其中,CreateCopy()函数需要基于一个已有的栅格图像文件作为模板,将模板文件的各项属性信息(例如空间......