65.9K
CodeProject 正在变化。 阅读更多。
Home

为什么微软有部分类而 Java 没有?

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (27投票s)

2014年9月17日

CPOL

2分钟阅读

viewsIcon

81295

在本文中,我们解释了为什么微软有部分类而 Java 没有,以及新一代的 RAD(快速应用开发)和可视化编程是如何开始的。

微软取得成功的秘诀(现在已经不是什么秘密了)是 GUI(图形用户界面)。

如果你像我一样是个老家伙,你可能记得在 80 年代之前,操作系统都是基于 DOS 的,有着黑色的窗口和残酷的命令,比如 direditmkdir 等。

突然,当微软发布 Windows 3.X 时,整个世界都沸腾了。简单的用户界面,无需记住那些 DOS 命令,Windows 成为每个终端用户桌面上的头号操作系统。

所以微软通过神奇的 GUI(图形用户界面)尝到了第一次成功的滋味。

他们想将同样的成功故事带到编程领域,于是 Visual Studio 诞生了。RAD(快速应用开发)和可视化编程的新时代开始了。

为了强化 GUI 的魔力,微软推出了 Visual Studio,开发者可以在其中获得像网格、按钮、组合框等用户界面元素。他们可以拖放这些 UI 元素并快速创建用户界面。开发者在这些用户界面被点击时,也能轻松地编写代码。

“在每个成功的 RAD 背后,都有代码支持”。

现在,在 RAD 工具中存在两种类型的代码

  • 一种是由工具自动生成的,开发者拖放 UI 元素(如按钮、文本框)时。这些代码通常带有标准的微软注释,如下所示。他们希望开发者不要修改它,因为这可能会导致不良后果。
    //---------------------------------------------------------------------------
    // <auto-generated>
    //    This code was generated from a template.
    //
    //    Manual changes to this file may cause unexpected behavior in your application.
    //    Manual changes to this file will be overwritten if the code is regenerated.
    // </auto-generated>
    //---------------------------------------------------------------------------
    
    using System;
    using System.Data.Objects;
    using System.Data.Objects.DataClasses;
    using System.Data.EntityClient;
    using System.ComponentModel;
    using System.Xml.Serialization;
    using System.Runtime.Serialization;
  • 另一种是开发者需要编写以满足业务功能的自定义代码。这种代码不是自动生成的,而是开发者为特定需求编写的非常定制化的代码。

现在,微软面临的最大挑战是如何将自定义代码和自动生成的代码分开。因为如果它们放在同一个文件中,自动生成的代码覆盖开发者编写的自定义代码的可能性很高,这会导致混乱。

答案是“部分类”。部分类的概念是,你的类可以存在于两个独立的物理文件中,但在编译时,它们会编译成一个 DLL 单元。

所以现在,你有一个物理文件包含 VS 生成的代码,在另一个物理文件中,开发者可以包含自定义代码,编译后,这两个文件合并成一个 DLL。

当我们看看 Java 时,它并没有这种 RAD 方法。因此,没有部分类,也没有代码隐藏等。我个人非常喜欢部分类的概念,尤其是在 RAD 和可视化编程方面,对此我满怀敬意。

几个月前,我写了一篇综合文章,说明了部分类的用途,C# 部分类的 4 种实时应用

此外,下面是由 www.questpond.com 团队制作的一个简单的 C# 部分类视频。它介绍了部分类和部分方法的重要性。

© . All rights reserved.