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



推荐阅读
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 热血合击脚本辅助工具及随机数生成器源码分享
    本文分享了一个热血合击脚本辅助工具及随机数生成器源码。游戏脚本能够实现类似真实玩家的操作,但信息量有限且操作不可控。热血合击脚本辅助工具可以帮助玩家自动刷图、换图拉怪等操作,并提供了雷电云手机的扩展服务。此外,还介绍了使用mt_rand函数作为随机数生成器的代码示例。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
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社区 版权所有