部分类/部分类文件

Posted

技术标签:

【中文标题】部分类/部分类文件【英文标题】:partial classes/partial class file 【发布时间】:2010-05-04 09:46:26 【问题描述】:

在 C# .net 中,有两个不同的类文件的规定,并使用关键字 partial 关键字使它们成为一个类。这有助于保持 [for ex] UI 和逻辑分开。 当然,我们可以有两个类来实现这个,一个用于 UI,另一个用于逻辑。 这可以在java中实现吗?

【问题讨论】:

我找到了一种将内部类分离到外部文件中的方法,也许有帮助? ***.com/q/27284667/1190665 【参考方案1】:

关于源文件分割

没有。 Java 源代码不能跨多个文件拆分。

来自Wikipedia article Comparison of Java and C Sharp

Sun Microsystems Java 编译器要求源文件名必须与其中唯一的公共类匹配,而 C# 允许同一文件中有多个公共类,并且对文件名没有任何限制。 C# 2.0 及更高版本允许通过在源代码中使用 partial 关键字将类定义拆分为多个文件。在 Java 中,公共类总是在它自己的源文件中。在 C# 中,源代码文件和逻辑单元分离并不是紧密相关的。


关于将逻辑和 UI 分离到各自的类中

在这种情况下,两类方法比一类两源方法更好的解决方案很多,因为在设计中强制执行分离,而不仅仅是源代码中的物理分离.

另见

Separation of logic and UI oo question - mixing controller logic and business logic Why is good UI design so hard for some Developers?

【讨论】:

@polygenelubricants 感谢您提供的信息。我只是想澄清一下,万一有一个调整可以完成这项工作。拥有两个不同的类更像是一种设计模式。无论如何感谢您提供的信息 @Ravisha:您总是可以破解javac 以允许部分类定义、包含等。事实上,这种破解可能已经存在。但是不,标准 Java 不允许这样做。 你能给出任何特定的链接 w.r.t hacking javac

以上是关于部分类/部分类文件的主要内容,如果未能解决你的问题,请参考以下文章

部分类文件的命名约定

我可以在部分类中定义属性,然后用另一个部分类中的属性标记它们吗?

部分类有多种形式

LINQ 2 SQL:部分类

C#部分类与部分方法

部分类静态类Object类ToString()方法扩展方法的使用