2017-03-14 2 views
-3

Es kann vorkommen, dass eine Klasse einige private Methoden hat. Sie sind manchmal notwendig, so dass niemand sie außerhalb der Klasse benutzen wird.Sollte Klassenziel nur öffentliche Methoden haben?

Ist es jedoch ein korrektes Prinzip, um eine externe Klasse für diese privaten Methoden zu erstellen und sie in dieser neuen Klasse öffentlich zu machen?

Ich habe gehört, dass wenn es private Methoden in der Klasse gibt, sollten sie in eine neue Klasse verschoben werden?

+5

'Ich habe gehört, dass wenn es private Methoden in der Klasse gibt, sollten sie in eine neue Klasse verschoben werden?' Wo hast du das gelesen? Sie sollten Methoden abstrahieren und/oder auf eine neue Klasse verschieben, wenn es sich um gängige Methoden handelt, die von anderen Klassen benötigt werden, um ein mehrfaches Umschreiben desselben Codes zu vermeiden. Private Methoden sollten nicht in eine neue Klasse verschoben werden, sie sind privat, weil eine bestimmte Klasse sie benötigt und sie sollten nicht für andere Klassen verfügbar sein. Daher sollten sie in der Klasse, die sie benötigt, privat bleiben. – BackSlash

+2

Das allgemeine OOP-Ziel besteht darin, möglichst wenige öffentliche Methoden zu verwenden. Je weniger Methoden, desto einfacher ist es zu refaktorieren und zu pflegen. Das Erstellen von privaten Methoden ist (in Java sowieso) kein Problem und sie sind sehr nützlich, um sicherzustellen, dass eine Methode so viel Kohäsion wie möglich hat. Das Erstellen einer Klasse mit öffentlichen Methoden, die nur eine andere Klasse bedienen, führt zu einer sehr engen Kopplung. – KevinO

+1

Wo hast du das gehört? Sie können auch private Methoden in der Klasse verwenden, in der sich die öffentlichen Methoden befinden. –

Antwort

-1

Eigentlich das Konzept der OOPs will der Benutzer alle Methoden als private haben, was der Grund ist, dass sie so standardmäßig sind. Aber es gibt einige Methoden, die anderswo aufgerufen werden müssen, das sind die einzigen Methoden, die wir normalerweise als öffentlich kennzeichnen.

Es ist nicht notwendig, Mitglieder einer Klasse auf eine neue Klasse zu verschieben, nur weil sie privat sind, aus anderen Gründen, z. B. wenn die Methodenfunktionalitäten logisch getrennt sind oder wenn die Klasse zu lang wird .

Ich hoffe, dies beantwortet Ihre Zweifel.

-1

Sie können private Methoden in derselben Klasse verwenden, in der öffentliche Methoden vorhanden sind. Wenn Sie Ihre Lösung für ein Problem mit dem OOP-Konzept entwerfen, versuchen Sie, die Geschäftsanforderungen und Programmlogik zu verstehen, wenn Sie sich für ein Entwurfsmuster entscheiden.

-1

Nein. Wenn Sie eine Methode veröffentlichen, ist sie nicht mehr privat.

Werfen Sie einen Blick auf dieses Java-Code:

class myExternalClass { 
    public void myPrivateMethod() { 
     // some code 
    } 
} 

Es gibt keine Möglichkeit myPrivateMethod() zu verhindern, dass von außen zugegriffen wird.

Verwandte Themen