2011-09-02 40 views
0

我听说有些人反对使用internal改性剂隐藏在它们被声明,因为它违背了OOP的主要原则组件外部类和成员。这是真的吗?“内部”修饰符和OOP原则

+0

问他们他们是否曾经使用* sealed *关键字。熟练设计师的真实标志。 –

回答

3

这是真的吗?

不,这是不正确的。内部可见性修饰符有其用法。有些课程你不想在其包含的程序集之外使用,但仍然需要在程序集中公开。例如,如果你正在设计一个API,那么你可能会有一些你不想公开给你的API消费者的类。

+0

但内部方法...我们使用它们,因为我们不能再使用“测试引用”。 – riezebosch

0

那么人们可以自由发表意见。我不确定“内部”如何击败OOP的主要原则。也许一个链接会帮助我评估他们的立场。

我使用internal来隐藏我不希望组件外部任何人使用的类型。这是在我看来亲OOP

  • 暴露的行为,但隐藏实现。
  • 使用最严格的访问可能

例如我重构了2种公共类型中的一些通用代码;这个新类型从内部开始。除非某些客户端/测试驱动我增加可视性。此外,我有时会将它作为临时作弊来避免为某些类型编写测试(所有公共类型都应该有测试)。它为我服务的很好。

0

内部关键字允许如果是用来由另一个组件开发者隐藏组件的成员。例如,在.NET框架中,有许多内部类型,这意味着它们仅用于内部程序集使用,并且不在库外部可见。这是封装在装配层面上的。