java - 对 OOP 和过程编程做出这样的肯定是正确的吗?

标签 java c++ object-oriented-analysis procedural

<分区>

我必须在这里做一个真假作业,我对我一直在阅读的这三件事有疑问,但我读得越多,我就越困惑。这是我的结论,希望您能帮助我更好地理解。

1) “面向对象的设计很难,因为面向对象的技术与人们的心智模型密切相关”。我认为这是真的,因为 OOP 是人类看待问题及其解决方案的一种方式。

2) “在面向对象编程中,复杂系统被分解为协作对象的层次结构”。我说这是真的,但我有疑问,因为我不确定说协作“对象”是否正确我觉得它应该是组件或不同的东西但同时我明白在一个类的 OOP 对象中协作与另一个类的对象。

3) 最后“过程式程序比面向对象程序更容易设计”我说的是真的,但我不确定为什么我读到的是在过程式程序中程序员写得像历史,他只是继续对解决方案进行编程并且没有制作它的完整模型,他使用了一种叫做“自上而下”的东西,是的,这就是我发现的程序更容易设计但更难进行更改,而 OOP 更难设计但更容易制作变化。

最佳答案

1)面向对象设计并不难。只是,您应该首先学习过程式编程,因为它的局限性是可见的。除非学生学习过程编程,否则 OOP 对学生来说似乎用处不大。

2) 在 OOP 中,A 类是为特定目标而设计的。其目的必须让用户清楚。如果需要此类的多个实例,则解决问题的实体被归类为一个类。此外,将责任委托(delegate)给一个对象是非常重要的。简单呈现读取数据等行为 在类中显示数据是一个糟糕的类设计。要执行复杂的任务,一个类必须与其他类共同协作来执行任务。这种方法称为类间协作。这 类的设计必须具有基本属性和行为,以反射(reflect)现实世界中的想法。

3) 最后,是的,从某种意义上说,过程编程是一种自上而下的方法,而 OOP 是一种从解决方案开始的自下而上的方法。如果存在现有解决方案,则首先研究该解决方案,并以适当的方式识别和组织必要的细节。对于没有解决方案的问题,领域专家(即能够提供有用信息和 future 的专家) 要求)与常规解决方案一起开始咨询。由于软件是通过首先分析解决方案来开发的,因此这种方法被称为自下而上的方法

关于java - 对 OOP 和过程编程做出这样的肯定是正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738676/

相关文章:

java - 回复kafka模板连接 header (CorrelationId)未发送到Google pub sub

java - 如何使用泛型在抽象类中注入(inject)服务

java - 将 HashMap 中的元素分组到特定的组中

c++ - makefile可以在C++中强制执行依赖限制吗

c++ - 将 C++ __fastcall Hook 从 x86 移植到 x64

c# - 教程逻辑与主应用程序逻辑分离

java - 如何在 Swing 中绘制油漆

C++ 在多级继承的情况下对 vtable 的 undefined reference

c# - 面向对象设计之谜

c++ - 错误:无法将 std::ostream 左值绑定(bind)到 std::basic_ostream<char>&&