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

Java 对OOP和过程编程做出这样的肯定是正确的吗?,java,c++,object-oriented-analysis,procedural,Java,C++,Object Oriented Analysis,Procedural,我必须在这里做一个正确或错误的家庭作业,我对这三件我一直在读的东西有怀疑,但我读得越多,我就越感到困惑。以下是我的结论,希望你能帮助我更好地理解 1面向对象的设计很难,因为面向对象技术与人们的心理模型紧密相连。我发现这是真的,因为OOP是人类看待问题及其解决方案的一种方式 2在面向对象编程中,复杂系统被分解为协作对象的层次结构。我说这是真的,但我有我的疑问,因为我不确定说协作对象是否正确我觉得它应该是组件或其他东西,但同时我理解在OOP中,一个类的对象与另一个类的对象协作 3最后,程序化程序比面

我必须在这里做一个正确或错误的家庭作业,我对这三件我一直在读的东西有怀疑,但我读得越多,我就越感到困惑。以下是我的结论,希望你能帮助我更好地理解

1面向对象的设计很难,因为面向对象技术与人们的心理模型紧密相连。我发现这是真的,因为OOP是人类看待问题及其解决方案的一种方式

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

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

1 我认为你的理由是说OOP并不难

二, 对我来说,组件是软件的一部分,是一个非常特定于上下文的术语定义。 每个组件定义一个或多个甚至可能零个对象类。对象是类的实例。实际协作的是对象,它们的行为由它们的类定义,这些类在组件中编码

三, 如果你的编程思想是“我想让这一切发生”,那么设计一个过程程序可能比设计一个面向对象的程序更容易,这似乎与1形成了对比。如果您能够将人类思维模型应用到设计中,然后应用到代码中,那么OOP就更容易了。
很难说,但我会愤世嫉俗地回答“不”,因为任何教OOP并为此进行考试的人可能都会花一年的时间告诉你OOP在各个方面都更好。请原谅我夸大了这位老师有多极端。它们越好,教学自然就越平衡。

1面向对象的设计并不难。只是,您应该首先学习过程编程,以了解其局限性。除非学生学习过程编程,否则OOP对学生来说似乎不是很有用

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

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

您使用的POO和我在本文中期望的OOP之间有什么区别吗?哦,是的,它的OOP对不起,只是我是西班牙语,所以它是programacion orienta a objetos POO对不起,我忘了lolI看到了,很有趣。在不暗示西班牙语是错误的情况下,我建议编辑你的问题并使用英文缩写,只是为了帮助那些只会说其他语言的可怜人-可能重复的请查看我刚刚发布的图片请查看我刚刚发布的图片