Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 模块化编程和面向对象编程的最大区别是什么?_Oop_Module - Fatal编程技术网

Oop 模块化编程和面向对象编程的最大区别是什么?

Oop 模块化编程和面向对象编程的最大区别是什么?,oop,module,Oop,Module,面向对象程序通常包含不同类型的 对象,每个对象对应于要访问的特定类型的复杂数据 管理或可能管理现实世界中的对象或概念,如银行 帐户、曲棍球运动员或推土机 模块化编程(也称为“自顶向下设计”和“逐步 “细化”)是一种强调分离的软件设计技术 将程序的功能划分为独立的、可互换的 模块,每个模块只包含执行所需的所有内容 所需功能的一个方面 我能想到的区别是,一个类上可以有多个对象,在模块化编程中,对于一个特定的东西,应该只有一个模块(1个对象) 以下是一个例子(我的理解方式) 假设你有一个计划。几个输入

面向对象程序通常包含不同类型的 对象,每个对象对应于要访问的特定类型的复杂数据 管理或可能管理现实世界中的对象或概念,如银行 帐户、曲棍球运动员或推土机

模块化编程(也称为“自顶向下设计”和“逐步 “细化”)是一种强调分离的软件设计技术 将程序的功能划分为独立的、可互换的 模块,每个模块只包含执行所需的所有内容 所需功能的一个方面

我能想到的区别是,一个类上可以有多个对象,在模块化编程中,对于一个特定的东西,应该只有一个模块(1个对象)

以下是一个例子(我的理解方式)

假设你有一个计划。几个输入字段和一个按钮。然后进行一些计算,程序输出一些东西

该程序可以有两个模块:输入/输出模块和计算模块

但是我不明白为什么程序不能有一个布局(一个包含屏幕上显示的所有对象的类)和一个逻辑部分(根据计算的深度可以是一个类或一个函数)


在模块化和对象编程的TEMR中,这个例子是否“正确”?模块化和oop可以一起使用吗?这两种范例/编程风格之间的最大区别是什么?

您的模块可以作为类实现,这确实是正确的。然而,模块在逻辑上是程序的独立部分,所以将它们作为类是没有意义的,因为一个类可以有许多不同的对象。如果我要编写一个模块化系统,并为模块使用类,我会让它们都是单例的

在您的示例中,面向对象编程将有定义输入字段和按钮的类,或者可能有一个用作计算器的类。您甚至可以更深入地定义一个计算器接口,该接口可以实现为SumCalculator、ProductCalculator等,甚至可以加入一些工厂,以便用户可以在程序执行的不同计算之间进行选择。是的,您可以有单例类,例如LayoutModule(它将跟踪InputField和Button类型的对象)和LogicModule(它将跟踪计算器实现)

模块化编程只是暗示您拥有这两个(或更多)模块,但没有说明它们是如何实现的。这些模块可以使用面向对象的方法,也可以完全不使用面向对象的方法,还可以使用过程C风格的编程。您通过类描述模块化编程的方式只是分离模块的一种方式。例如,可以将它们作为类分隔,也可以将它们作为跨多个编译单元的函数分隔。这是你的选择

面向对象编程意味着您的程序是面向对象的。它没有提到应用程序中的模块,但要求通过类和对象对表示应用程序中某些想法的逻辑部分进行建模

因此,这两种方法可以一起使用,当您决定模块化时,面向对象的选择通常要求您通过类及其关系定义这些模块