“内部”修饰符& OOP原则

时间:2011-09-02 11:22:16

标签: c# .net oop internal

我听说有些人反对使用internal修饰符隐藏来自声明它们的程序集之外的类和成员,因为它违背了OOP的主要原则。这是真的吗?

3 个答案:

答案 0 :(得分:3)

  

这是真的吗?

不,这不是真的。内部可见性修饰符有其用途。有些类不希望在其包含的程序集之外使用,但仍然在程序集内部是公共的。例如,如果您正在设计API,则可能存在您不希望向API的使用者公开的类。

答案 1 :(得分:0)

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

我使用internal来隐藏我不希望程序集之外的任何人使用的类型。在我看来,这是亲OOP

  • 公开行为但隐藏实现。
  • 使用最严格的访问权限

e.g。我重构了两种公共类型中的一些常用代码;这种新类型最初​​是内部的。除非一些客户/测试驱使我提高可见性。此外,我有时使用它作为临时作弊,以避免为某些类型编写测试(所有公共类型应该有测试)。它对我有好处。

答案 2 :(得分:0)

内部关键字允许开发人员隐藏程序集的成员(如果它由另一个程序集使用)。例如,在.NET框架中,有许多内部类型,这意味着它们仅在内部程序集使用时需要,并且在库外部不可见。这是装配级别的封装。