Die korrekte Anwendung von Zugriffsmodifikatoren
-
11-09-2019 - |
Frage
Ich bin ein Student nach Ressourcen suchen, die mir weiter helfen verstehen können, wie man richtig Zugriffsmodifikatoren an die Mitglieder / Typen anzuwenden, wie ich sie codieren.
Ich weiß (in C #), welche Einschränkungen Zugriffsmodifikatoren wie privat, öffentlich, geschützt etc. in Position gebracht. Als ich meine eigene kleine Projekte Code habe ich eine Tendenz, einfach alles öffentlich zu machen. Ich bin sicher, dies ist eine absolut schreckliche Praxis, da es nur Verkapselung aus dem Fenster wirft. Ich weiß nur nie, wann es richtig ist so etwas wie interne vs. privat zu nutzen.
Hat jemand eine gute Ressourcen mir zu helfen, in die ordnungsgemäße Verwendung der Zugriffsmodifikatoren verstehen?
Lösung
Dies ist eine Erfahrung Typ Frage. Starten Sie von der Ebene der geringst möglichen Privilegien und fördern sich als notwendig.
Mit anderen Worten, macht alles privat. Bis Sie feststellen, dass es geschützt oder öffentlich gefördert werden muss. Im Laufe der Zeit werden Sie ein Gefühl für die beabsichtigten erhalten und später entdeckten Verwendungen Ihrer Klassen.
Andere Tipps
ich einfach alles, was der Zugang so restriktiv wie möglich machen:
- standardmäßig privat
- Ansonsten intern, wenn es eine API für andere Klassen innerhalb dieser Versammlung ausgesetzt
- Oder Öffentlichkeit, wenn es eine API außerhalb der Assembly ausgesetzt
- Oder geschützt, wenn es beabsichtigt ist nur von Unterklassen aufgerufen werden.
Starten Sie alles privat setzen. Wenn Sie das Bedürfnis verspüren, den Modifikator entsprechend ändern, bis Sie das Gefühl haben, die richtige Art zu wählen.
Um die Dinge zu vereinfachen, versuchen Sie es mit TDD , oder Sie könnten in noch erhalten mehr Mühe, wenn Sie erhalten, um Unit-Tests zu schreiben ...
Jede Art von Material Tutorial oder Lehre gibt Ihnen die gleiche Führung, nämlich die eine, die die anderen Buchungen bereits gab. So erwarte nicht, dass viele nützliche Informationen in dieser speziellen Angelegenheit von „Ressourcen“.
Die primäre Ressource, die darüber hinausgeht, ist der Code, dass andere Leute geschrieben haben. Nehmen Sie eine große C # Projekt (zB Mono oder
Sie sollten durch das Denken über die Schnittstelle einer Klasse zu starten, die die notwendige und hinreichende Satz von Routinen ist es, um belichten muss seinen Zweck zu erreichen. Machen Sie, dass die Öffentlichkeit. Alles andere sollte privat sein.
Ich habe eine Tendenz, alles zu machen, geschützt, dass nicht öffentlich ist. Verlassen der Freiheit meiner Benutzer zu tun, was sie mit meiner Klasse wollen. Wenn ihre Klassengrenzen, die ihr Problem sein würde.
Jedes Mal, wenn Sie von einer Klasse erben Sie müssen wissen, wie es funktioniert auch, wenn oop über ist die Umsetzung versteckt. Sie können die Implementierung verstecken, aber Sie werden in der Dokumentation nicht verbergen.