首页 > 其他分享 >面向对象设计原则

面向对象设计原则

时间:2023-03-05 13:55:19浏览次数:52  
标签:原则 对象 封闭 面向对象 Principle 设计 开放

1.单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。
2.开放封闭原则(OCP,Open Closed Principle)是所有 面向对象 原则的核心。 软件实体应该是可扩展,而不可修改的。 也就是说,对扩展是开放的,而对修改是封闭的。 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。 对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。
3.里氏替换原则(LSP,Liskov Substitution Principle)是关于继承机制的原则,是实现开放封闭原则的具体规范,违反了里氏替换原则必然违反了开放封闭原则。
4.依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。 简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
5.接口隔离原则(ISP),一个类对另外一个类的依赖性应当是建立在最小的接口上.
也就是说,对于用户,它只能依赖有一个查询方法的接口.
6.组合/聚合复用原则(Composite/Aggregation Reuse Principle,CARP)是指要尽量使用组合/聚合而非继承来达到复用目的。 另一种解释是在一个新的对象中使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象委托功能达到复用这些对象的目的。
7.迪米特法则(Law of Demeter)又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。

标签:原则,对象,封闭,面向对象,Principle,设计,开放
From: https://www.cnblogs.com/gehui2020100505/p/17180367.html

相关文章

  • 软件设计与体系结构第一次分享
    1.单一职责原则:就是对于类来说,一个类应该只负责一项职责,规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分,也就是说,接口的职责并不是单一的,而是包含两个职责(......
  • 面向对象中@perproty的作用
    @property是Python中的一个装饰器(decorator),用于创建getter和setter方法。其作用是将类的方法转换为相应的属性,从而使得代码更加简洁明了。在Python中,我们可以通......
  • Python 字符串切割函数设计
    s="fs.fes..23...43....tghf"print"要切割的字符串为:",s,"\n"s=s.strip()#去掉字符串左右两边空格print"输出去掉空格的字符串:",s,"\n"#sep为切割字符串的......
  • php脚本守护进程设计
    思路:while循环,若当前没有数据要操作可以休眠;crontab脚本每隔固定时间段执行该脚本,执行时先检测是否已在执行,若无执行,有则跳过。nohup后台执行flock-xn加锁2>&1表......
  • 逆向软件设计和开发——留言板系统
    该系统实现了留言板的登陆和注册,留言的增加和读取。采用mysql数据库,把用户的信息(用户名、id(唯一)、密码)和留言(标题、内容、作者昵称、留言时间)分别储存在”yonghu”和”mess......
  • 一种通过nacos动态配置实现多租户的log4j2日志物理隔离的设计
    1、背景1.1、背景旧服务改造为多租户服务后,log4j日志打印在一起不能区分是哪个租户的,日志太多,太杂,不好定位排除问题,排查问题较难。1.2、前提不改动以前的日志代码(工作......
  • Java Swing项目使用Idea UI Designer设计插件无法启动问题解决方案
    起因最近整理一下以前写的swing项目,结果发现跑不起来了,具体表现为与视图表绑定的Java类的各属性为NULL(插件没有初始化绑定的类对象),导致项目无法启动。(报空指针异常)问题排......
  • 第一章程序设计和C语言
    第1章 程序设计和C语言本文作者:INE1228本文链接:https://www.cnblogs.com/FiftyOne/p/17178893.html版权声明:未经作者允许严禁转载1. 机器语言1.1 概念计算机能直接......
  • X86平台:多任务操作系统在X86保护模式下两种内存模型下的工作模式及其设计
        本文于2023/3/2,开始写作,因为内容太多了,所以暂时只能拟出标题,我可以根据这个标题进行复习,学习过相关知识的同学也可以根据题目复习。    自学了李忠老......
  • 逆向软件设计和开发——员工信息管理系统
    逆向软件设计和开发是一个程序员在软件开发中必备的能力,只有具备了逆向的软件开发能力,才可以改进别人的已经写好的软件,并不断完善。本次课程设计我逆向开发的软件是一个使......