Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 访问修饰符的正确应用_Oop_Encapsulation_Access Modifiers - Fatal编程技术网

Oop 访问修饰符的正确应用

Oop 访问修饰符的正确应用,oop,encapsulation,access-modifiers,Oop,Encapsulation,Access Modifiers,我是一名学生,正在寻找可以帮助我进一步了解如何在编写成员/类型代码时正确地将访问修饰符应用于这些成员/类型的资源 我知道(在C#)访问修饰符如private、public、protected等设置了哪些限制。当我为自己的小项目编写代码时,我有一种倾向,那就是把一切都公开。我确信这是一个绝对可怕的实践,因为它只是把封装抛到了窗外。我只是不知道什么时候使用像“内部”和“私有”这样的东西是正确的 有没有人有什么好的资源来帮助我理解访问修饰符的正确使用?这是一个经验型问题。从最低特权级别开始,必要时升级

我是一名学生,正在寻找可以帮助我进一步了解如何在编写成员/类型代码时正确地将访问修饰符应用于这些成员/类型的资源

我知道(在C#)访问修饰符如private、public、protected等设置了哪些限制。当我为自己的小项目编写代码时,我有一种倾向,那就是把一切都公开。我确信这是一个绝对可怕的实践,因为它只是把封装抛到了窗外。我只是不知道什么时候使用像“内部”和“私有”这样的东西是正确的


有没有人有什么好的资源来帮助我理解访问修饰符的正确使用?

这是一个经验型问题。从最低特权级别开始,必要时升级


换言之,一切都要保密。直到您发现它需要升级为受保护或公共。随着时间的推移,你会对你的类的预期用途和后来发现的用途有一种感觉。

这是一个经验型问题。从最低特权级别开始,必要时升级


换言之,一切都要保密。直到您发现它需要升级为受保护或公共。随着时间的推移,你会对你的类的预期用途和后来发现的用途有一种感觉。

开始把一切都保密。如果您觉得需要,请相应地更改修改器,直到您有选择正确类型的感觉


为了使事情变得更简单,请尝试使用,否则在编写单元测试时可能会遇到更多的麻烦…

开始将所有内容私有化。如果您觉得需要,请相应地更改修改器,直到您有选择正确类型的感觉


为了使事情更简单,请尝试使用,否则在编写单元测试时可能会遇到更多的麻烦…

我只是尽可能限制所有内容的访问:

  • 默认为私有
  • 否则是内部的,如果它是向此程序集中的其他类公开的API
  • 或者,如果它是在程序集外部公开的API,则为public
  • 或者,如果只打算从子类调用它,则受保护

我只是尽可能限制所有内容的访问:

  • 默认为私有
  • 否则是内部的,如果它是向此程序集中的其他类公开的API
  • 或者,如果它是在程序集外部公开的API,则为public
  • 或者,如果只打算从子类调用它,则受保护

    • 任何类型的教程或教材都会给你相同的指导,即其他帖子已经给你的指导。因此,不要期望从“资源”中获得关于这一具体问题的有用信息


      除此之外的主要资源是其他人编写的代码。拿一个大型的C#项目(例如,or),研究他们是如何具体遵循向您解释的原则的。此外,如果您要设计一个特定的类,请尝试在系统库中考虑一个类似的类,并尝试了解它是如何实现的(通过查看Mono源代码或使用.NET reflector)。

      任何类型的教程或教材都会为您提供相同的指导,也就是其他帖子已经给你的。因此,不要期望从“资源”中获得关于这一具体问题的有用信息


      除此之外的主要资源是其他人编写的代码。拿一个大型的C#项目(例如,or),研究他们是如何具体遵循向您解释的原则的。此外,如果要设计特定的类,请尝试在系统库中考虑类似的类,并尝试了解它是如何实现的(通过查看Mono源代码或使用.NET reflector)。

      您应该从考虑类的接口开始,这是为了实现其目的而需要公开的一组必要且充分的例程。公开。其他一切都应该是私有的。

      您应该从考虑类的接口开始,这是为了实现其目的而需要公开的一组必要且充分的例程。公开。其他的一切都应该是私人的。

      我倾向于保护所有非公开的东西。让我的用户可以自由地对我的类做任何他们想做的事情。如果他们的课间休息,那将是他们的问题


      每次从类继承时,您都需要知道它是如何工作的,即使oop是关于隐藏实现的。您可以隐藏实现,但不会隐藏文档。

      我倾向于对非公开的内容进行保护。让我的用户可以自由地对我的类做任何他们想做的事情。如果他们的课间休息,那将是他们的问题

      每次从类继承时,您都需要知道它是如何工作的,即使oop是关于隐藏实现的。您可以隐藏实现,但不会隐藏文档