バックエンド死亡経路TIL 02第1
学習目標
講座を聞いて、私の知っている内容をチェックして、
新しい学習内容を整理する.
あなたの疑問を理解し、理解します.
オブジェクト向けプログラミングとは?
Javaはオブジェクト向けの言語です.
しかし,オブジェクト向けプログラミングを行わなければ,オブジェクト向けとは呼べない.
では、オブジェクト向けプログラミングとは何でしょうか.
プログラムをオブジェクトとして整理します.
すなわち,プログラムは命令の集合ではなく複数の独立した単位(オブジェクト)の集合として望ましい.
歴史
番組規模の拡大に伴い、より規模の大きい番組をどのように制作しますか?このような問題が発生した.
オブジェクト向けプログラミングは、この問題を解決する方法の1つです.
「小分業、小合併」の大きなフレームワークの下でのオブジェクト向けプログラミング
プログラム内の複数の動作は、各オブジェクトが実行する小機能によって分離され、これらのオブジェクトとオブジェクトは互いに協力している.
すなわち,オブジェクト向けプログラミングとは,各分野の作業をいくつかの小さな部分に分割し,互いに協力させることである.
ただし、これらのオブジェクトの役割と機能を区別するには、互いに区別する必要があります.
Javaはtypeと区別し、typeを作成するためにJavaはClassを使用します.
import java.lang.*;
//class
class MyObj extends Object implements Runnable {
//속성
private int a = 0;
//행위
public void run() {
a += 1;
}
}
//인스턴스화
MyObj obj = new Object();
オブジェクトガイドを理解するには、理解対象は概念用語としてJava技術用語classとinstanceの違いである.
コンポーネント
オブジェクト向けプロパティ
カプセル化
これがカプセル化の特徴です.
アクセス指定子アクセス範囲同一クラス同一パッケージ異なるパッケージのサブクラス他のパッケージ共通制限なしOO保護された同一パッケージ内と継承されたクラス内OO default同一パッケージ内O
継承
継承されたフィーチャー.
継承機能を使用すると、新しいクラスが既存のクラスのプロパティと動作を使用できます.
ただし、継承は「抽象」と「具体化」の関係にのみ使用できます.
抽象化
抽象化は、データ型の具体的な定義です.
オブジェクト間の関係では、親クラスが子クラスより抽象的であることが要求されます.
Javaでは、抽象クラスとインタフェースが継承クラスまたは実装インタフェースの抽象メソッドを強制的に実装します.
abstract class
たけいせい
多形性とは、1つのオブジェクトに複数のタイプがあることを意味します.
Javaは、親クラスタイプの参照変数が子クラスタイプのインスタンスを参照できるようにします.
class Login { ... }
class PortalLogin extends Login { ... }
...
Login login = new Login(); // 허용
PortalLogin pLogin = new PortalLogin(); // 허용
Login login = new Login(); // 허용
PortalLogin pLogin = new Login(); // 오류 발생.
多形性により、オブジェクト間の関係を整理できます.instanceof演算子を使用して、参照変数が実際に参照されるインスタンスのタイプを決定します.
オブジェクト向け設計
では、どのようにしてオブジェクトに向いているのでしょうか.
まず、オブジェクト向けプログラミングでは、次の2つの側面を考慮する必要があります.
この2つの要因を考慮すると、オブジェクト向けを他の人によりよく説明するために設計する必要があります.
UML
UMLは、オブジェクト向けプログラミング設計を表す言語です.
オブジェクト向けSOLIDの原則
SOLIDはRobert Martinが紹介したオブジェクト向けプログラミングの5つの基本原則である.
単一責任の原則
1階級には1つの責任しかない.
Open/closed principle
ソフトウェア要素は拡張で開き、変更で閉じます.
Liskov substitution principle
オブジェクトは、プログラムの正確性を損なうことなく、サブタイプのインスタンスに変換できる必要があります.
Interface segregation principle
複数の特定のクライアントインタフェースは、1つの汎用インタフェースよりも優れています.
Dependency inversion principle
プログラマーは「具体化ではなく抽象化に頼らなければならない」と話した.依存注入はこの原則に従う方法の一つである.
Reference
この問題について(バックエンド死亡経路TIL 02第1), 我々は、より多くの情報をここで見つけました https://velog.io/@justsaturday/백엔드-데브코스-TIL-02일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol