オブジェクト指向でなぜつくるのか


本記事の内容

以下の本を読み、まとめを記載。

以前以下の本を読んだが、難しくて理解できなかった。

一方で今回読んだ本は実用的かつ、プログラミングの歴史が含まれており
読みやすい構成となっていた。

オブジェクト指向でなぜ作るのか

  • オブジェクト指向とは?

    • ソフトウェア開発の総合技術

    • 保守性と再利用性

  • オブジェクト指向の3大要素

    • クラス

      • 変数とメソッドのまとまり

      • 整理するためのもの

      • クラスとインスタンス

        • クラス:例

        • インスタンス:実物

      • インスタンス名はメモリの座標

        • そのまま代入すると参照渡しになるので注意

        • 値渡しではない

    • ポリモーフィズム

      • インターフェースを統一する

      • メソッド名を統一すれば、クラスによらず実行できる

        • 親クラスでメソッドを中身を空にして定義

        • 子クラスで具体の内容をそれぞれ記述

    • 継承

      • 共通点と相違点を整理する

        • 特に相違点を別の場所に置くことで表現

      • 共通メソッドは親クラスに記載

      • 相違メソッドは子クラスでそれぞれ記載

      • ※ポリモーフィズムとはそもそも目的が違う

  • プログラミング言語の歴史がたくさん書いてたが割愛

  • 変数の取り扱い

    • 前提、基本はローカル変数

    • メソッド内でしか使用できない

    • それだと不便なので範囲を拡張したのがインスタンス変数

    • これはクラス内で使用可能

    • まさにローカル変数とグローバル変数の間のような存在

  • プロセスとスレッド

    • プロセスはスレッドのまとまり

    • マルチスレッドはスレッドが複数同時並行する

      • 厳密には一つずつ進めてる

      • 待ち時間を考慮してチクチク進めるだけ

  • メモリ

    • 静的領域

      • グローバル変数

      • ロード情報

    • スタック領域

      • スレッド(メソッド処理?)

    • ヒープ領域

      • クラスインスタンスの定義

  • ガベージコレクション

    • スタック領域や静的領域から呼ばれないもの

  • Callメソッドは呼び出し方向統一の意がある

    • ハリウッドの例を参考にしてる

    • 製作者から声をかけるので、出演者は声をかけるなと

  • 高い凝集性と低い結合度

    • 凝集性:クラス内の関係性

    • 結合度:クラス同士の関係性


この記事が気に入ったらサポートをしてみませんか?