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



推荐阅读
  • 本文由技术爱好者痞子衡撰写,详细介绍了一款名为pzh-speech的语音处理工具的开发背景与核心技术。该工具旨在简化语音处理流程,为开发者提供一个强大的开源解决方案。 ... [详细]
  • [编程题] LeetCode上的Dynamic Programming(动态规划)类型的题目
    继上次把backTracking的题目做了一下之后:backTracking,我把LeetCode的动态规划的题目又做了一下,还有几道比较难的Medium的题和Hard的题没做出来,后面会继续 ... [详细]
  • 汇编语言标识符和表达式(四)(表达式与符号定义语句)
    7、表达式表达式是程序设计课程里的一个重要的基本概念,它可由运算符、操作符、括号、常量和一些符号连在一起的式子。在汇编语言中,表达式分为:数值表达式和地址表达式。(1)进制伪指令R ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • Golang与微服务架构:构建高效微服务
    本文探讨了Golang在微服务架构中的应用,包括Golang的基本概念、微服务开发的优势、常用开发工具以及具体实践案例。 ... [详细]
  • VMware 15.5.7 中文版激活方法
    本文提供了一种有效的方法来激活 VMware 15.5.7 的中文版本,同时介绍了如何利用最新的激活码进行操作,确保用户能够顺利使用。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • GitHub基础指南:项目代码的部署与管理
    GitHub是一个广泛使用的开源代码托管平台,支持版本控制与协作开发。本文将指导开发者如何在GitHub上高效地管理和分享项目代码,包括项目的创建、代码的上传与下载等基本操作。 ... [详细]
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • 集群与负载均衡技术解析
    本文探讨了集群(Cluster)的概念,即通过网络连接的一组计算机系统,它们作为一个整体提供服务,实现分布式计算。文章还详细介绍了负载均衡技术,旨在提高网络服务的效率和可靠性。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 惠普战86 Pro G2:新一代商用台式机的性能与设计解析
    惠普战86 Pro G2台式机以其卓越的性能和紧凑的设计,满足了现代商务环境的需求。本文将详细介绍这款商用台式机的各项特点,包括其强大的硬件配置、精美的外观设计以及出色的稳定性和安全性。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 深入解析C语言中的关键字及其分类
    本文将全面介绍C语言中的关键字,并按照功能将其分为数据类型关键字、控制结构关键字、存储类别关键字和其他关键字四大类,旨在帮助读者更好地理解和运用这些基本元素。C语言中共有32个关键字。 ... [详细]
  • 对于编程爱好者而言,理解PHP的强大功能及其在Web开发中的应用至关重要。本文旨在分享作者在学习PHP过程中的实际经验和技巧,帮助初学者找到学习编程的有效途径。 ... [详细]
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社区 版权所有