“Internal"修饰符,OOP原则

本文关键字:OOP 原则 Internal quot | 更新日期: 2023-09-27 18:07:36

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

“Internal"修饰符,OOP原则

这是真的吗?

不,这不是真的。内部可见性修饰符有它的用法。有些类不希望在包含它们的程序集之外使用,但在程序集内仍然是公共的。例如,如果您正在设计一个API,可能会有一些您不想向API的消费者公开的类。

internal关键字允许开发人员隐藏程序集的成员,如果它被另一个程序集使用。例如,在。net框架中,有许多类型是内部的,这意味着它们仅用于内部程序集使用,并且从库外部不可见。这是程序集级别的封装。

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

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

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

。我用两个公共类型重构了一些公共代码;这种新类型从内部开始。除非一些客户/测试驱使我增加可见性。我有时也用它作为临时作弊,以避免为某些类型编写测试(所有公共类型都应该有测试)。这对我很有好处。