可以将面向对象和面向过程混合在一起吗?

电脑杂谈  发布时间:2020-04-09 05:24:08  来源:网络整理

对象捕捉 对象追踪_面向过程与面向对象_js 判断对象是否为空对象

CSDN论坛>其他技术论坛>研发管理

一键式查看最佳答案

确认一键查看最佳答案?

此功能是VIP独有的,回答VIP开通的速度将提高10倍!

取消

激活VIP会员身份

更多帖子

影子星

Bbs1

此版本的专家点: 0

Blank

js 判断对象是否为空对象_对象捕捉 对象追踪_面向过程与面向对象

黄hua市2005年10月C ++ Builder大型版专家在月度排名中排名第二

Blank

兰华市2005年11月C ++ Builder大版本专家在月度列表中排名第三

100%完成率

当前正在设计一个软件系统,大致分为特定功能,用户界面,配置管理和日志记录.

我最初想在底部使用面向过程的方法,在顶部使用面向对象的方法. 但是有些功能我真的无法想到使用面向对象的好处.

首先是效率,尽管有些人经常说面向对象的程序的效率并没有比面向过程的程序低,但是我总是觉得它有点糟. 至少在该过程中不需要类结构的分解,而这一部分是正确的. 对效率的要求很高.

在结构之后,该部分与底层紧密结合. 如果要使用的对象必须具有负责传输的控制模块,并且该处理方法可以以插件的形式实现,则结构非常清晰.

最后,要实现的是,如果使用对象,则系统看起来非常复杂,尤其是控制传输的模块,必须同时考虑底层和对象;并且该过程的方法只有几个功能接口,它们直接连接到底层,简单明了.

也许我的水平太差了,我还没有掌握面向对象的本质. 但是我认为设计会随着实际情况而改变. 我认为原因已经足够,但让我证明一下. 此方法有负面影响吗?它会造成多少影响?如果我这样做是正确的,请告诉我您的意见,最好举个例子. 因为有人说混合使用面向对象和面向过程的方法会带来很多麻烦.

谢谢你,,请让我知道!

问题点: 点

->

更多帖子

js 判断对象是否为空对象_面向过程与面向对象_对象捕捉 对象追踪

Bbs1

此版本的专家点: 0

面向对象不是指面向对象的语言和方法. 最重要的是思考. 如果您有面向对象的思想,则无需使用面向对象的思想就可以用C语言编写低耦合的内部高模块. 使用Java只是将过程写入类. 至于您要使用面向对象还是面向过程,这非常简单: 使用简化问题的方法

Bbs1

此版本的专家点: 0

分离模块后,可以对不同的模块使用不同的方法.

更多帖子

思考

Bbs1

此版本的专家点: 0

支持Fusuli的观点!

所有方法都不是绝对的. 拒绝事物并不意味着将其推翻.

我们现在反对封建制度,所以可以说封建制度中的一切都是垃圾吗?您能说所有现代文明都比以前的封建社会文明先进吗?你好吗?

人类与低级动物和机器之间的差距在于人类是有思想的动物. 思想决定了人们可以继续创新. 现在,人工智能的最大困难是实现人们的想法. 当然,如果机器可以具有人类思想,那么人类生存的必要性就很小! ! !

总之,基于应用程序.

对象捕捉 对象追踪_js 判断对象是否为空对象_面向过程与面向对象

更多帖子

chinapcer

Bbs1

此版本的专家点: 0

使用面向对象的思维,总体考虑仍然更好. 对于某些基础处理,类的划分不是很好面向过程与面向对象,只需将整个大进程写入类方法即可. 面向对象和面向过程不是对立的. 面向对象是一种从头到尾掌握系统组成方法的方法,所谓的对象,到最终实现方法的层次,也是一个过程

更多帖子

Bbs1

此版本的专家点: 0

shadowstar(谁敢在棋盘上像明星一样下棋?): 回答您的几个问题.

首先是效率,尽管有些人经常说面向对象的程序的效率并没有比面向过程的程序低,但是我总是觉得它有点糟. 至少在该过程中不需要类结构的分解,而这一部分是正确的. 对效率的要求很高.

--------------------------------------------------- -------------------------------

构造析构函数本身的成本对于现代计算机而言微不足道. 除了非常特殊的情况外,它通常不会影响效率. 如果存在效率问题,通常是由于对象设计目标存在问题,从而导致许多不必要的资源初始化/释放过程;例如,在应用程序中,如果每个对象必须执行连接/释放,则自然会存在效率问题. 如果您进行了性能检查并确定了析构函数本身的函数调用开销导致了性能问题,那么我认为您使用的是C ++,因为通常此类对性能要求严格的程序会选择C ++来实现. 您可以看看InsideC ++,EffectiveC ++,MoreEffectiveC ++,有很多技术可以提高性能.

在结构之后,该部分与底层紧密结合. 如果要使用的对象必须具有负责传输的控制模块,并且该处理方法可以以插件的形式实现,则结构非常清晰.

--------------------------------------------------- -------------------------------

面向过程与面向对象_对象捕捉 对象追踪_js 判断对象是否为空对象

OO程序实现的插件方法更简单明了,有许多现成的模型,例如Adapter,Facade等. 建议阅读“设计模式”.

最后,要实现的是,如果使用对象,则系统看起来非常复杂,尤其是控制传输的模块,必须同时考虑底层和对象;并且该过程的方法只有几个功能接口,它们直接连接到底层,简单明了.

--------------------------------------------------- --------------------------------

在OO系统中设计模块时,选择要公开的接口类. 如果您的模块设计目标明确,则不需要公开很多类. 由于接口类之间存在一定的关系(例如,User-(have)-> Priority),所以单个类public方法也将具有某些自然的语义联系(例如,Person类具有公共方法GetName()面向过程与面向对象, GetAge()等),因此通常比面向过程的模块更容易理解. 只能说这是一个设计问题,这似乎很复杂,导致需要公开太多的接口类,并且关系还不清楚.

可以将面向对象和面向过程混合在一起吗?

--------------------------------------------------- --------------------------------

没有什么是绝对不可能的. 如果一个单独的模块出于特殊原因必须采用不同的策略,那么就不会有太大的问题. 但是,如果同时在同一模块中使用OO和PO,则(1)首先,要求具备较高的设计和实现技能,才能同时利用两者,而不会造成负面影响(例如通常在PO变量,宏中使用全局变量时,需要确保它们不会渗透到OO部分;类似地,在PO程序中对某些内部类的不当使用很容易导致僵化的结构,并且很难检查这种使用是否适当); (2)其次,由于技术要求高,给他人阅读您的代码或设计带来麻烦; (3)目前,OO和PO拥有自己独特的建模工具,在CodeStyle和UnitTest工具等方面存在一定差异;然后,在选择这些工具时将受到极大的限制.

除了相对简单的模块外,面向过程将比面向对象的实现效率具有某些优势,并且非常低级的系统级开发OO编译器不支持,或者性能极其重要,超过90 %OO大于PO有优势.

更多帖子

影子星

Bbs1

此版本的专家点: 0

Blank

黄hua市2005年10月C ++ Builder大型版专家在月度排名中排名第二

Blank

兰华市2005年11月C ++ Builder大版本专家在月度列表中排名第三


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-169054-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...