首页 网站首页 商业资讯 操作 查看内容

2分钟让你明白什么是面向对象编程

私域电商 操作 2023-4-1 12:40 5839人围观

相信很多刚起头打仗编程的小伙伴,对于什么是面向工具,什么是面向进程都是一脸懵逼的。

网上关于这两个的回答真的很多,可是都有一个配合特点:------------不轻易懂。

让我们来看看某百科给出的界说:





能否是听不懂??为领会决大师的迷惑,小编明天上网收集了一些材料,现在就简单浅显的为大师先容一下到底什么是面向工具编程和面向进程编程

一、先来两小段浅显诠释

面向进程(Procedure Oriented 简称PO :如C说话):

从名字可以看出它是重视进程的。当处理一个题目标时辰,面向进程会把工作拆分红: 一个个函数和数据(用于方式的参数) 。然后依照一定的顺序,履行完这些方式(每个方式看做一个进程),等方式履行完了,工作就搞定了。

面向工具(Object Oriented简称OO :如C++,JAVA等说话):

看名字它是重视工具的。当处理一个题目标时辰,面向工具会把事物笼统成工具的概念,就是说这个题目里面有哪些工具,然后给工具赋一些属性和方式,然后让每个工具去履行自己的方式,题目获得处理。

二、用3个例子说明两者的区分

例子一:

题目: 洗衣机里面放有脏衣服,怎样洗清洁?

面向进程的处理方式:

1、履行加洗衣粉方式;

2、履行加水方式;

3、履行洗衣服方式;

4、履行清洗方式;

5、 履行烘干方式;

以上就是将处理这个题目标进程拆成一个个方式(是没有工具去挪用的),经过一个个方式的履行来处理题目。

面向工具的处理方式:

1、我先弄出两个工具:“洗衣机”工具和“人”工具

2、针对工具“洗衣机”加入一些属性和方式:“洗衣服方式”“清洗方式”、“烘干方式”

3、针对工具“人”加入属性和方式:“加洗衣粉方式”、“加水方式”

4、然后履行

人.加洗衣粉

人.加水

洗衣机.洗衣服

洗衣机.清洗

洗衣机.烘干

处理同一个题目 ,面向工具编程就是先笼统出工具,然后用工具履行方式的方式处理题目。


例子二 : 打麻将例子 你 我 他

面向进程: 打麻将 (你,我,他)

---------处理题目 拆成一个行动,把数据丢进去

面向工具: 我.打麻将(你,他) or 你.打麻将(我,他) or 他.打麻将(我,你)

---------处理题目 笼统出工具,工具履行行动 。


例子三:

最初在用一个网上常见的五子棋例子来说明一下:

面向进程的设想思绪就是首先分析题目标步调:

1、起头游戏,2、黑子先走,3、绘制画面,4、判定胜负,5、轮到白子,6、绘制画面,7、判定胜负,8、返回步调2,9、输出最初成果。把上面每个步挪用分歧的方式来实现。

面向工具的设想则是从别的的思绪来处理题目。

全部五子棋可以分为1、黑白双方,这两方的行为是如出一辙的,2、棋盘系统,负责绘制画面,3、法则系统,负责判定诸如犯规、胜负等。第一类工具(玩家工具)负责接管用户输入,并奉告第二类工具(棋盘工具)棋子结构的变化,棋盘工具接收到了棋子的变化就要负责在屏幕上面显现出这类变化,同时操纵第三类工具(法则系统)来对棋局停止判定。

可以明显地看出,面向工具是以功用来分别题目,而不是步调。一样是绘制棋局,这样的行为在面向进程的设想平分离在了多个步调中,极能够出现分歧的绘制版本,由于凡是设想职员会斟酌到现真相况停止各类百般的简化。而面向工具的设想中,绘图只能够在棋盘工具中出现,从而保证了绘图的同一。


三:面向进程与面向工具的优弱点:

小编在看了@十四期_李光 博客上诠释的很是浅显易懂,分享给大师

用面向进程的方式写出来的法式是一份蛋炒饭,而用面向工具写出来的法式是一份盖浇饭。

蛋炒饭建造的细节不说了,最初的一道工序必定是把米饭和鸡蛋混在一路炒匀。盖浇饭呢,则是把米饭和盖菜别离做好,你假如要一份红烧肉盖饭呢,就给你浇一份红烧肉;假如要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

蛋炒饭的益处就是入味均匀,吃起来香。假如恰巧你不爱吃鸡蛋,只爱吃青菜的话,那末唯一的法子就是全数倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜便可以了。盖浇饭的弱点是入味不均,能够没有蛋炒饭那末香。

究竟是蛋炒饭好还是盖浇饭好呢?实在这类题目都很难回答,非要比个高低凹凸的话,就必须设定一个场景,否则只能说是各有所长。假如大师都不是美食家,没那末多讲求,那末从饭馆角度来说的话,做盖浇饭明显比蛋炒饭更有上风,他可以组合出来肆意多的组合,而且不会浪费。

盖浇饭的益处就是‘’菜”“饭”分手,从而进步了建造盖浇饭的灵活性。饭不满足就换饭,菜不满足换菜。用软件工程的专业术语就是”可保护性“比力好,”饭” 和”菜”的耦合度比力低。蛋炒饭将”蛋”“饭”搅和在一路,想换”蛋”“饭”中任何一种都很困难,耦合度很高,以致于”可保护性”比力差。软件工程追求的方针之一就是可保护性,可保护性首要表示在3个方面:可了解性、可测试性和可点窜性。面向工具的益处之一就是明显的改良了软件系统的可保护性。

总结来说:

面向进程

优点:性能比面向工具高,由于类挪用时需要实例化,开销比力大,比力消耗资本;比如单片机、嵌入式开辟、 Linux/Unix等一般采用面向进程开辟,性能是最重要的身分。

弱点:没有面向工具易保护、易复用、易扩大

面向工具

优点:易保护、易复用、易扩大,由于面向工具有封装、继续、多态性的特征,可以设想出低耦合的系统,使系统 加倍灵活、加倍易于保护

弱点:性能比面向进程低

四、面向工具编程的特征

三大根基特征:封装,继续,多态


封装

封装,就是把客观事物封装成笼统的类,而且类可以把自己的数据和方式只让可信的类大概工具操纵,对不成信的停止信息隐藏。一个类就是一个封装了数据以及操纵这些数据的代码的逻辑实体。在一个工具内部,某些代码或某些数据可所以私有的,不能被外界拜候。经过这类方式,工具对内部数据供给了分歧级此外庇护,以避免法式中无关的部分意外的改变或毛病的利用了工具的私有部分。

继续

继续,指可以让某个范例的工具获得另一个范例的工具的属性的方式。它支持按级分类的概念。继续是指这样一种才能:它可以利用现有类的一切功用,并在无需重新编写本来的类的情况下对这些功用停止扩大。 经过继续建立的新类称为“子类”或“派生类”,被继续的类称为“基类”、“父类”或“超类”。继续的进程,就是从一般到特别的进程。要实现继续,可以经过 “继续”(Inheritance)和“组合”(Composition)来实现。继续概念的实现方式有二类:实现继续与接口继续。实现继续是指间接利用父类的属性和方式而无需额外编码的才能;接口继续是指仅利用属性和方式的称号、可是子类必须供给实现的才能。

多态

多态,是指一个类实例的不异方式在分歧情形有分歧表示形式。多态机制使具有分歧内部结构的工具可以同享不异的内部接口。这意味着,虽然针对分歧工具的具体操纵分歧,但经过一个公共的类,它们(那些操纵)可以经过不异的方式予以挪用。

五、五大根基原则:SPR, OCP, LSP, DIP, ISP

单一职责原则SRP(Single Responsibility Principle)

是指一个类的功用要单一,不能包含万象。如同一小我一样,分派的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效力却高不起来。

开放封锁原则OCP(Open-Close Principle)

一个模块在扩大性方面应当是开放的而在变动性方面应当是封锁的。比如:一个收集模块,本来只办事端功用,而现在要加入客户端功用,那末该当在不用点窜办事端功用代码的条件下,就可以增加客户端功用的实现代码,这要求在设想之初,就该当将办事端和客户端分隔,公共部分笼统出来。

里式替换原则LSP(the Liskov Substitution Principle LSP)

子类该当可以替换父类并出现在父类可以出现的任何地方。比如:公司搞年度晚会,一切员工可以加入抽奖,那末非论是老员工还是新员工,也非论是总部员工还是外派员工,都该当可以加入抽奖,否则这公司就反面谐了。

依靠颠倒原则DIP(the Dependency Inversion Principle DIP)

具体依靠笼统,上层依靠下层。假定B是较A低的模块,但B需要利用到A的功用,这个时辰,B不该当间接利用A中的具体类: 而该当由B界说一个笼统接口,并由A来实现这个笼统接口,B只利用这个笼统接口:这样就到达了依靠颠倒的目标,B也消除了对A的依靠,反过来是A依靠于B界说的笼统接口。经过上层模块难以避免依靠下层模块,假如B也间接依靠A的实现,那末便能够形成循环依靠。一个常见的题目就是编译A模块时需要间接包括到B模块的cpp文件,而编译B时一样要间接包括到A的cpp文件。

接口分手原则ISP(the Interface Segregation Principle ISP)

模块间要经过笼统接口隔分开,而不是经过具体的类强耦合起来


看到这大师能否是劈面向工具有了更多的领会呢,快取出你的键盘new一个工具来感受一下面向工具编程的魅力吧。最初,老例子,送上脸色包,拜~~~~~



注:本文相关内容来自CSDN @ 十四期_李光 @ X_Ming_H 及博客园 @ 韩亦乐若有侵权请联系。原文:https://blog.csdn.net/jerry11112/article/details/79027834、https://blog.csdn.net/xmh594603296/article/details/79774167 、https://www.cnblogs.com/corvoh/

高端人脉微信群

高端人脉微信群

人脉=钱脉,我们相信天下没有聚不拢的人脉,扫码进群找到你所需的人脉,对接你所需的资源。

商业合作微信

商业合作微信

本站创始人微信,13年互联网营销经验,擅长引流裂变、商业模式、私域流量,高端人脉资源丰富。

我有话说......

查看全部评论>>

相关推荐

国产操作系统发布:手机、电脑应用都能兼容

国产操作系统发布:手机、电脑应用都能兼容

近日深度操作系统官方宣布,国产操作系统deepin 20.6版本正式上线,新版本升级了Stabl

键盘操作方法大全

键盘操作方法大全

【键盘操作方法大全】键盘可不仅仅能帮我们打字哦,还有很多快捷的操作你都知道吗?除

电脑的一些基本常识和操作

电脑的一些基本常识和操作

关于电脑的一些基本常识和操作(电脑初学者必备)  众所周知,在21世纪的今天,电脑

操作系统实验一到实验九合集(哈工大李治军)

操作系统实验一到实验九合集(哈工大李治军)

知乎Markdown适配不行,希望在我的博客中查看文章作者寄语操作系统实验的学习是一个循

看完这篇Linux基本的操作就会了

看完这篇Linux基本的操作就会了

前言只有光头才能变强这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。

搞懂软考,看这一篇就够了

搞懂软考,看这一篇就够了

大家好,我是你们的新朋友叨叨张,很高兴能够在这里和大家相遇,今天我要分享的主题是

0基础入门Photoshop基础操作(一)

0基础入门Photoshop基础操作(一)

大家好我是正经人你以为上来就要教封面上那个效果吗?当然不是,那个是我好几年前做的

从操作系统的进化中,读懂MagicOS

从操作系统的进化中,读懂MagicOS

操作系统的数十年沉浮1946年诞生第一台计算机时,还没有操作系统。程序员靠着「打孔」

还不会使用 GitHub ? GitHub 教程来了!万字图文详解

还不会使用 GitHub ? GitHub 教程来了!万字图文详解

在编程届有个共识,想要成为一个合格的程序员必须要掌握 GitHub 的用法!接下来,我们

Git使用教程,最详细,最傻瓜,最浅显,真正手把手教

Git使用教程,最详细,最傻瓜,最浅显,真正手把手教

(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么

Win10系统常用的快捷键(绝对很详细)

Win10系统常用的快捷键(绝对很详细)

前言介绍快捷键,也就是刷刷按几下键盘上的组合键就可以达到鼠标点很多下才能实现的效

上海医保转入杭州- “浙里办”简易操作

上海医保转入杭州- “浙里办”简易操作

我在上篇文章说过,上海医保需要社保(即养老保险)成功转入杭州后才能进行转移,申请

史上最全高中化学实验总结(操作+方法)

史上最全高中化学实验总结(操作+方法)

高中化学实验真复杂,包学习APP为你整理最全总结,不怕记不住!一、中学化学实验操作

大学四年自学走来,关于怎么学「操作系统」和「计算机网络 ... ...

大学四年自学走来,关于怎么学「操作系统」和「计算机网络 ... .

最近收到不少读者留言,关于怎么学「操作系统」和「计算机网络」的留言,小林写这一块

用这6款软件记笔记,不要太爽!丨上进青年研习社

用这6款软件记笔记,不要太爽!丨上进青年研习社

文/小渔俗话说:“好记性不如烂笔头。”在无纸时代,记笔记当然也不一定要用烂笔头了

8个流氓软件,这辈子是不可能安装的。

8个流氓软件,这辈子是不可能安装的。

之前安利过不少值得安装或使用的软件,但这一次我想换个角度,写一些强烈不建议安装的

KMS服务,一句命令激活windows/office!

KMS服务,一句命令激活windows/office!

服务器地址:http://kms.03k.org(点击检查是否可用);服务作用:在线激活windows和off

Windows10 快速启动

Windows10 快速启动

从Windows8开始,Windows的开机速度有了极大的提高,这得益于一项新的功能:快速启动

最后教一次:完美解决电脑上的流氓软件

最后教一次:完美解决电脑上的流氓软件

国产流氓软件之所以流氓就流氓在 “ 买一赠N ”装一个软件,就会给你附赠N个流氓软件

推荐10个超好玩的网站,一打开就停不下来!

推荐10个超好玩的网站,一打开就停不下来!

推荐10个超好玩的网站,窥探别人的记忆,敲键盘听歌,办公偷懒神器,看中国古今妖怪…

电话咨询: 15924191378
添加微信