– カプセル化
– 抽象化
– 継承
– 多態性
– カプセル化
データとメソッドを一つのユニットにまとめてしまうことで、このバンドルは「カプセル化」と呼ばれる。 これにより、より安全に関数の再利用ができるようになります。 例えば、上のコードを見てください。 プロパティはクラスのスコープにのみ表示され、関数 phoneColor、phoneWeight、phoneBrand は、関数を呼び出した人に表示されます。
抽象化
抽象化により、より複雑なものからモデルを作成することができます。 たとえば、Instagram にアクセスして、写真に「いいね!」と言ったりコメントしたりするときの携帯電話を考えてみてください。 背景には、あなたには関係のない、多くの複雑さとロジックがあります。 もうひとつの例は、コーヒーメーカーです。 例えば、コーヒーメーカーでコーヒーを淹れるとします。 マシンの内部では、あなたが知らないところでさまざまなことが起こっています。 ユーザーであるあなたは、おそらくマシンの中で何が起こっているかなんて気にも留めないでしょう。 ちょうどコーヒーが必要です。 基本的に、不要な情報/詳細を隠して、必要なものだけを提供します。
継承
継承とは、クラスが階層構造で他のクラスからメソッドやプロパティを継承できる方法を指します。 OOPでは、parent class
とsub class
またはchild class
と呼ばれるものが存在します。 sub class
またはchild class
は親クラスからinherits
継承します。 別の表現では、サブクラスがparent
クラスにextends
すると言うこともできます。
Polymorphism
Polymorphism とは多くの形態を意味します。 プログラミングの面では、特に、サブクラスが親クラスからすべてのプロパティを継承する方法を指しますが、独自の特定のプロパティを持つこともできます。 例えば、教室の中にいる先生と生徒を考えてみましょう。 両者には、名前、年齢など、多くの共通した性質があります。 しかし、生徒は、成績など、教師にはない独自の特性を持っているかもしれません。
Conclusion
まとめると、OOP はオブジェクトに焦点を当てたプログラミング パラダイムです。 OOP は JavaScript に固有のものではありませんが、これは JavaScript におけるその設計の一例です。 OOP を考えるのに最適な例や方法は、本質的にオブジェクトを作成するための青写真であるということです。 コードの再利用性によって、コードをより DRY (Don’t Repeat Yourself) にすることができます。 このコンセプトが理解できなくても心配は要りません。 私もそうでした。 詳細については、下にリンクを貼りました。