热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么是面向对象_什么?你还没对象?your对象来了第2弹之面向对象模式

大家看了上一篇文章:子衿:什么?你还没对象?your对象来了第一弹之面向对象​zhuanlan.zhihu.com之后找到对

大家看了上一篇文章:

子衿:什么?你还没对象?your对象来了第一弹 之 面向对象​zhuanlan.zhihu.com
d90eb9ec7dc98b0e8c859c805ef16d00.png

之后 找到对象了吗?

ad91da34bf22e5739dc6d8cbe7007985.png

还没找到没关系,文末给大家安排一波福利。

上一篇文章给大家介绍了什么是面向对象,那么,面向对象模式也就不难理解了。简单点说就是,比如你饿了,想吃饭。你可以去超市买菜买肉回来自己做,也可以定外卖前者是面向过程,后者是面向对象。过程式模式易于理解和掌握,它的逐步细化问题的设计方法和大多数人的思维方式比较接近,它的表达能力很强,能用来实现各种复杂的数据结构的运算。但是呢,生活总会出现一些突发情况,比如你突然不想吃米了,想吃面。突发事件,在编程中就叫做需求变更或者新的需求,这种事情发生是必然会发生的。需求变更了,就要重新拼凑做饭的步骤了。而写程序就需要通读代码,了解解决问题的详细步骤,有些可以重用(不需要复制),不能重用的要重新写,所以有时候就比较麻烦。而面向对象就像定外卖,有什么需求下单备注或者打电话给商家,我们不关注商家做饭的过程,关注的是对象。可以把外卖软件当做是「对象」,我们是面向外卖软件(对象)“做饭”。面向对象把过程抽象为类,然后封装,方便我们使用。在面向对象编程中,抛弃了函数,想要实现一个功能不再是通过函数的叠加调用实现的了。而是通过对象。所以虽然不用我们自己做饭,需求变更也比较简单,但是饭的质量可能没有你自己做的好。所以他和面向过程相比,优点很多比如易维护等,缺点就是性能较差C语言就是主流的过程式程序设计语言,C++则是面向对象。

上次我们介绍了面向对象的三大特征:封装、继承、多态。不知道的赶快回去看看。这次我们来介绍一下面向对象的五大基本原则

60ceccae66dad96224ecd4324498c88d.png

1、单一职责原则
每一个类应该专注于做一件事情,不能太花心,这也做那也做,会出现混乱。2、开放封闭原则
面向扩展开放,面向修改关闭。可以扩展,但是不能修改。 3、里式替换原则
超类(父类)存在的地方,子类是可以替换的。比如大家都干过的 家长签字,你可以替你爸爸签。4、依赖倒置原则
高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。具体实现应该依赖于抽象,而不是抽象依赖于实现。就是你出国要说你是中国人,而不能说你是哪个村子的。比如说中国人是抽象的,下面有具体的省市县。你要依赖的是抽象的中国人,而不是你是哪个村的。 5、接口分离原则
设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。就比如一个电脑拥有USB接口、电源接口,音响接口,把这几个功能拆分成不同的接口,比在一个接口里要好的多,可以减少维护的精力。


觉得文章还不错的记得点赞加关注哦~

e614b59dbaf56f9b50bb1f3839543d27.gif

福利在此:链接: https://pan.baidu.com/s/1gC-qhOrUCu0_E7tkIh9sEg

C/C++学习资料​pan.baidu.com

提取码: bnu2



推荐阅读
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • C语言标准及其GCC编译器版本
    编程语言的发展离不开持续的维护和更新。本文将探讨C语言的标准演变以及GCC编译器如何支持这些标准,确保其与时俱进,满足现代开发需求。 ... [详细]
  • Python 学习是否需要先掌握 C 语言?
    Python 是一门非常适合编程入门的语言,很多人疑惑是否需要先学习 C 语言才能更好地掌握 Python。本文将详细探讨这个问题,并为初学者提供专业的建议。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • Win11扩展卷无法使用?解决扩展卷灰色问题的指南
    本文详细介绍了在Windows 11中遇到扩展卷灰色无法使用时的解决方案,帮助用户快速恢复磁盘扩展功能。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • C语言基础入门:7个经典小程序助你快速掌握编程技巧
    本文精选了7个经典的C语言小程序,旨在帮助初学者快速掌握编程基础。通过这些程序的实践,你将更深入地理解C语言的核心概念和语法结构。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 本文详细介绍了如何检查和配置电脑上的PHP环境,包括位数、运行支持以及文件格式的打开方式。适合初学者了解PHP的基础知识和操作方法。 ... [详细]
  • 本文介绍了一种基于选择排序思想的高效排序方法——堆排序。通过使用堆数据结构,堆排序能够在每次查找最大元素时显著提高效率。文章详细描述了堆排序的工作原理,并提供了完整的C语言代码实现。 ... [详细]
author-avatar
e26462510
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有