[1Day-1CS】デザインパターン&パラダイムまとめ
1日1CS、デザインパターンとプログラミングのパラダイムに関する内容をまとめています。
はじめに
いままとめている内容はすべて「面接のための CS 専攻知識ノート」を基にしている。本来 1 日 1CS を始めるときに触れておくべき内容だったかもしれないが、ㅋㅋ 今からでも書き残しておく。
デザインパターン
- プログラムを設計するときに発生した問題を、オブジェクト同士の関係などを通じて解決できるようにつくった規約
Singleton パターン: 1 クラス 1 インスタンス / モジュール結合の問題を解くために依存性注入を活用
Factory パターン: 上位クラスで大枠を決め、下位クラスが継承で具体化する
Strategy パターン: カプセル化されたアルゴリズムを Context 内部で差し替えながら使う
Observer パターン: 状態変化を観察し、変化時にメソッドなどで変更内容を伝える
Proxy パターン: 対象オブジェクトにアクセスする前に流れを差し挟むインターフェイスの役割
Iterator パターン: イテレータを使ってコレクションの要素にアクセスし、ひとつのインターフェイスで巡回できる
公開モジュール (Revealing Module) パターン: アクセス制御子を作るパターン
MVC パターン: Model, View, Controller で構成され、アプリケーションの構成要素を分割して開発できるようにする
MVP パターン: Controller を Presenter に置き換える
MVVM パターン: Controller を View Model に置き換える
プログラミングパラダイム
-
宣言型と命令型の区別 → 宣言型は「何を」? 命令型は「どうやって」?
-
宣言型
- 関数型プログラミング: 純粋関数を積み上げてロジックを実装
-
命令型
-
オブジェクト指向プログラミング: オブジェクトの相互作用を表現し、オブジェクトのメソッドを活用
-
手続き型プログラミング: 連続した計算で構成され、コードをそのまま記述すれば成立する
-
댓글 작성
게시글에 대한 의견을 남겨 주세요.