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

2.面向对象设计原则

时间:2024-06-04 10:57:55浏览次数:19  
标签:原则 复用 接口 面向对象 可维护性 设计

1.概述

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。

在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。

面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则。面向对象设计原则也是我们用于评价一个设计模式的使用效果的重要指标之一。

原则的目的: 高内聚,低耦合

2.面向对象设计原则

  • 单一职责原则:类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。

  • 开闭原则:类的改动是通过增加代码进行的,而不是修改源代码。

  • 里氏代换原则:任何抽象类出现的地方都可以用他的实现类进行替换,实际就是虚拟机制,语言级别实现面向对象功能。

  • 依赖倒转原则:依赖于抽象(接口),不要依赖具体的实现(类),也就是针对接口编程。

  • 接口隔离原则:不应该强迫用户的程序依赖他们不需要的接口方法。一个接口应该只提供一种对外功能,不应该把所有操作都封装到一个接口中去。

  • 合成复用原则:如果使用继承,会导致父类的任何变换都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。

  • 迪米特法则:一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如在一个程序中,各个模块之间相互调用时,通常会提供一个统一的接口来实现。这样其他模块不需要了解另外一个模块的内部实现细节,这样当一个模块内部的实现发生改变时,不会影响其他模块的使用。(黑盒原理)

标签:原则,复用,接口,面向对象,可维护性,设计
From: https://www.cnblogs.com/bleds/p/18230349

相关文章

  • 1.软件设计模式概述
    1.什么是设计模式设计模式从建筑行业而来:《建筑的永恒之道》作者:ChristopherAlexander定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。简单的说......
  • FuTalk设计周刊-Vol.059
    #AI漫谈热点捕手1.快手发布大模型产品“可图”20多种创新AI图像玩法限免上线近日,快手自研大模型产品“可图”(Kolors)正式对外开放,支持文生图和图生图两类功能,已上线20余种AI图像玩法。目前,用户可以通过“可图大模型”官方网站和微信小程序,免费使用各项AI图像功能。链接http......
  • FuTalk设计周刊-Vol.049
    #AI漫谈热点捕手1.GeminiPro1.5及其百万上下文功能现已向所有人开放GeminiPro1.5加入视频模态的长上下文功能,AI可以处理更复杂的视频内容。链接https://aistudio.google.com/app/prompts/new_chat?ref=top.aibase.com2.Figma2024Config大会6月26-27日今年的Conf......
  • 制作一个简单HTML旅游网站(HTML+CSS+JS)甘肃旅游网页设计与实现5个页面
    一、......
  • 微信小程序毕业设计-明星应援系统项目开发实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • 从数据库设计到性能调优,全面掌握openGemini应用开发最佳实践
    本文分享自华为云社区《DTSETechTalk×openGemini:从数据库设计到性能调优,全面掌握openGemini应用开发最佳实践》,作者:华为云开源。在本期《从数据库设计到性能调优,全面掌握openGemini应用开发最佳实践》的主题直播中,华为云开源DTSE技术布道师&openGemini社区发起人Shawn,通过......
  • 中小型老年公寓小程序的设计与实现毕业设计源码
    博主介绍:✌专注于VUE,小程序,安卓,Java,python,物联网专业,有16年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。研究的背景:随着我国老年人口的不断增长,老年公寓的需求也越来越迫切。然而,传统的老年公寓设......
  • 中小型饭馆餐饮小程序的设计与实现毕业设计源码
    博主介绍:✌专注于VUE,小程序,安卓,Java,python,物联网专业,有16年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。研究的背景:随着互联网技术的飞速发展,移动应用已经成为人们生活中不可或缺的一部分。尤其是......
  • java多态——面向对象进阶
    学习多态之前要先了解继承定义:    对象的多种形态。(就是爸爸管儿子)例子:Fatherf=newSon(); 这里的Father是父类,Son是继承父类Father的子类应用场景/好处:    使用父类型作为参数,可以接受所有子类对象,体现多态的拓展性与遍历(儿子太多,不好管,没事,可以找......
  • State设计模式上篇(理论篇)
    State设计模式理论篇参考了王备战老师的ppt,相当于是一次期末复习总结吧⭐目标:目前的需求是我所制作的OJ项目在面临代码提交结果以及运行结果时对于其中的各个状态(如:通过!编译失败等等诸多状态进行代码开发时,很容易代码一不小心就写烂了,写到连自己都无法看懂的地步,所以尝......