当你说C#是面向组件的语言时,它意味着什么?

Ara*_*raK 12 c#

我刚学会Java.我对Java感到厌倦,一段时间后又回到了C++.我认为C#与Java类似.在对C#进行一些阅读之后,我对C#和Java之间相似性的假设是不正确的.我在C#中发现了许多强大的概念,我喜欢在Java中看到它.无论如何,除了一件事,我读到的很多内容对我都有意义.我一直听说C#是面向组件的语言!维基百科对这个概念毫无用处.

当你说C#是面向组件的语言时,简单来说是什么意思?!一个简单的例子将不胜感激.

And*_*are 11

我觉得"面向组件"和"面向对象"之间的界限非常模糊,在大多数情况下,可以安全地假设它们是同一个东西.

话虽如此(鉴于我不知道你对面向对象编程的了解)我提交了这篇优秀的维基百科文章供你阅读:

面向对象编程(OOP)是一种编程范例,它使用"对象" - 由数据字段和方法组成的数据结构 - 以及它们与设计应用程序和计算机程序的交互.编程技术可以包括诸如信息隐藏,数据抽象,封装,模块化,多态和继承之类的特征.直到20世纪90年代初,它才在主流软件应用程序开发中普遍使用.许多现代编程语言现在支持OOP.

您可能还想阅读基于组件的软件工程,该工程在整个系统中应用类似的概念:

基于组件的软件工程(CBSE)(也称为基于组件的开发(CBD))是软件工程的一个分支,其优先级是关于整个给定软件系统中可用的广泛功能的关注点的分离. .这种做法在短期和长期内为软件本身和赞助它的组织带来了同样广泛的好处.

组件被认为是整个软件工程中面向服务的起始平台的一部分,例如Web服务,以及最近的面向服务的体系结构(SOA) - 组件被转换为服务,并随后继承了超出一个普通的组件.


Mik*_*scu 8

我相信这里的其他人将能够更好地解释面向组件的语言是什么(如果他们不这样做,那么应该在互联网上彻底搜索),但我认为可以看到面向组件的范例.作为面向对象编程的一个实施例.

也就是说,面向组件的编程通过严格执行和实现一些OO概念来专门化面向对象编程.基本上,整个想法是创建可重用的代码 - 以组件的形式 - 可以互换.因此,面向组件的编程在很大程度上依赖于:多态性,封装,后期绑定,继承(通过接口)以及最重要的二进制可重用性.

组件是一个软件包,它封装了数据和功能 - 很像OOP中的对象 - 但是更高级别.

所以,说C#是面向组件的语言基本上说它非常适合用于开发我们称之为组件的软件包 - 但我觉得C#以.NET框架为目标的事实有很多与声明有关.

在反思中,我们很可能会说Java也可以被认为是一种面向组件的语言 - 虽然我不得不承认我没有广泛的Java知识.


Ree*_*sey 7

我不认为C#是"面向组件的语言".它是一种面向对象的语言,可以轻松打包到组件中.

我认为更准确地说,许多基于.NET的开发框架都是面向组件的框架.如果您正在开发面向组件的框架,这将使C#开发组件面向.例如,ASP.NET和Windows Forms主要基于组件概念模型 - 一切都是通过小型组件完成的,在设计时协同工作.

但是,您可以使用很少或没有组件方向轻松地在C#中进行开发.语言本身并没有提供这个 - 除了启用这种开发风格,如果你选择使用它.