2017-03-14 1 views
-3

クラスにはいくつかのプライベートメソッドがあることがあります。彼らは時には必要なので、誰もクラスの外でそれらを使用することはありません。クラスはパブリックメソッドのみを持つことを目指すべきですか?

ただし、これらのプライベートメソッドの外部クラスを作成し、この新しいクラスで公開することは正しいプリンシパルですか?

私は、クラスにプライベートメソッドがあると、新しいクラスに移動する必要があると聞いたことがありますか?

+5

「クラスにプライベートメソッドがあると、新しいクラスに移動する必要があると聞いたことがありますか?」これをどこで読んだのですか?同じコードを複数回書き直すのを避けるために、メソッドが他のクラスで必要とされる一般的なメソッドである場合、メソッドを抽象クラスまたは新規クラスに移動する必要があります。プライベートメソッドは新しいクラスに移動してはいけません。特定のクラスに必要なもので、他のクラスで使用できないようにプライベートクラスなので、必要なクラスにプライベートメソッドを置く必要があります。 – BackSlash

+2

一般的なOOPの目標は、可能な限り公開メソッドを少なくすることです。メソッドが少ないほど、リファクタリングとメンテナンスが容易になります。プライベートメソッドを作成することは問題ではありません(Javaではとにかく)、メソッドが可能な限り結束性を持つようにするためには非常に便利です。別のクラスを処理するためだけにパブリックメソッドを持つクラスを作成すると、非常に密接な結合が作成されます。 – KevinO

+1

あなたはそれをどこで聞いたのですか?パブリックメソッドが存在するクラスの中にプライベートメソッドを持たせることもできます。 –

答えて

-1

実際、OOPの概念は、ユーザーがすべてのメソッドをプライベートにすることを望んでいます。これがデフォルトの理由です。しかし、他の場所で呼ばれる必要があるいくつかの方法があります。それらは、通常、私たちが一般に公開する唯一の方法です。

クラスのメンバーをプライベートなものにするだけで新しいメンバーに移動する必要はありません。メソッドの機能性が論理的に分離されている場合や、クラスが長くなりすぎるような場合など。

これがあなたの疑問に答えることを願っています。

-1

パブリックメソッドがある同じクラスにプライベートメソッドを含めることができます。 OOPを使用して問題にソリューションを設計するときは、設計パターンを決定する際にビジネス要件とプログラムロジックを理解してください。

-1

いいえメソッドをパブリックにすると、それはもはやプライベートではありません。

は、このJavaコードを見てください:外部からアクセスされてからmyPrivateMethod()を防止するための方法は

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

はありません。

関連する問題