首页 > 其他分享 >开放-封闭原则

开放-封闭原则

时间:2022-08-30 10:02:06浏览次数:73  
标签:原则 变化 封闭 抽象 模块 开放

理论

开放-封闭原则:软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。即对扩展是开放的,对更改是封闭的。

何时应对变化:无论模块多么的“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员对于他设计的模块对哪种变化封闭做出选择。他必须先测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。面对需求,对程序的改动应该尽可能是通过增加新代码进行的,而不是更改现有的代码。

开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象。然而应用程序中每个部分都刻意的进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。

实例

UML类图

 

标签:原则,变化,封闭,抽象,模块,开放
From: https://www.cnblogs.com/kyzh-lhl/p/16638231.html

相关文章

  • 设计模式的七大原则
    编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有如下更好的特性代码重用性(即:相同功能......
  • iptables 控制docker端口开放范围
    对于类似dockerrun-d-p80:80shaowenchen/demo-whoami运行的服务,需要在DOCKER-USER链中添加规则。Docker会将iptables规则添加到DOCKER链中,如果需要在Docke......
  • firewalld开放指定端口
     #systemctlstartfirewalld启动防火墙#systemctlstatusfirewalld查看防火墙●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:......
  • 软件六大设计原则
    软件设计原则概述:软件开发过程中,为了提高系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员应该尽量遵循7大原则来开发程序,从而提高软件开发效率,节约软件开发成......
  • 周一见!距离阿里巴巴开源开放周还有3天
    面对快速变化的世界开源领域涌现了哪些新技术和发展模式?开源社区建设又有哪些新进展和创新实践?下周8月22日-24日连续三天,精彩不止锁定"阿里技术"视频号直播和开发者......
  • 经典设计原则
    经典设计原则除了SOLID之外,常见的还包括KISS、YAGNI、DRY、LOD、CRP等几种:KISS(KeepItSimple&Stupid,尽量保持简单)YAGNI(YouAin'tGonnaNeedIt,你不会需......
  • 阿里云服务器ECS安装MySQL数据库、初始化密码修改,远程访问权限设置、开放服务器3306端
    1.修改配置文件/etc/my.cnf,在[mysqld]下面添加一行代码:skip-grant-tables2.servicemysqldrestart3.mysql-uroot-p //此时直接回车,既可以进入数据库。4.进数据库后......
  • ubuntu关于防火墙开放端口
    一、防火墙1、查看防火墙状态sudoufwstatus1系统提示:“Status:inactive”状态:不活跃上面提示表示没有开启防火墙,并不是没有安装防火墙注:如果没有安装防火墙,可以使用......
  • 面试:你设计索引的原则是什么?怎么避免索引失效?
    1.设计索引的原则是什么?1.为频繁查询的字段建立索引2.选择区分度大的列作为索引性别男女加索引和不加区别不大超过基线,比如查询的数据集大于30%3.尽量为ORDERBY和......
  • Amazon服务器安全组开放指定端口
    假设我需要开放公网对应的3000端口,找到实例EC2->“安全组”选项->“入站规则”->“编辑入站规则”修改以下内容:......