热门标签 | 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



推荐阅读
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • 汽车电子架构与CAN网络基础解析——鉴源实验室专业解读 ... [详细]
  • C语言中fprintf函数写入文件出现空白问题及解决方法
    C语言中fprintf函数写入文件出现空白问题及解决方法 ... [详细]
  • 如何在Lua中调用C语言编译的动态链接库
    本文介绍了如何在Lua中调用C语言编译的动态链接库。通过详细步骤和示例代码,帮助开发者理解和掌握这一技术。参考了《Lua编程入门》一书中的相关内容,并结合实际操作经验,提供了更加清晰和实用的指导。此外,还探讨了在不同操作系统下编译和链接Lua的方法,为跨平台开发提供了有价值的参考。 ... [详细]
  • 本文详细解析了高性能通信库 NanoMsg 的框架及其应用场景。其中,BUS模式支持多对多的简单通信方式,消息会传递给所有直接连接的节点。REQREP模式则适用于构建无状态的服务集群,用于处理用户的请求,每个请求都需要一个相应的响应。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 在使用Keil C51创建51单片机项目时,启动代码中包含多个关键元素,这些元素确保了系统的正确初始化和运行。主要包括复位向量、中断向量表、系统时钟配置、寄存器初始化以及主函数入口等。这些组件共同协作,为后续的应用程序执行提供稳定的基础。 ... [详细]
  • 如何在电脑上设置两小时后自动关机及解决无法开机的问题 ... [详细]
  • 机顶盒,即数字电视机顶盒(Digital TV Set-Top Box,简称STB),是一种放置在电视机旁的设备。它主要用于将数字信号转换为电视能够识别的模拟信号,从而实现高质量的视频和音频播放。机顶盒不仅支持基本的电视节目接收功能,还具备多种增值服务,如互动点播、网络浏览等。随着技术的发展,现代机顶盒集成了更多的智能功能,成为家庭娱乐的重要组成部分。 ... [详细]
  • 解题心得:UVA1339(逻辑分析与字符串处理+排序算法)
    解题心得:UVA1339(逻辑分析与字符串处理+排序算法) ... [详细]
  • 观察 | 求职体验:收到录用通知的公司通常不深究技术细节,而那些详细追问的公司往往没有后续进展
    观察 | 求职体验:收到录用通知的公司通常不深究技术细节,而那些详细追问的公司往往没有后续进展 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 在探讨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社区 版权所有