TIL(2021.02.26)


<プログラミング分類>


1.プロセス向けプログラミング

  • プロシージャ向けプログラミングは、プロシージャ(シーケンス)呼び出し概念に基づく構造化プログラミングである.すなわち,プログラムが実行するプログラムを順序の概念に分けて処理する方式である.
  • ポートは、基本、C言語などを含む典型的なプログラム向けプログラミング言語である.
  • 2.オブジェクト向けプログラミング

  • プログラミング方法
  • は、抽象的に必要なデータによって状態と動作を有するオブジェクトを作成し、オブジェクト間の有機的なインタラクションによって論理を組織する.

    ソース:https://intellipaat.com/blog/tutorial/python-tutorial/python-classes-and-objects/

    2-1オブジェクト向けプログラミングの特徴


    *パッケージ
    名前の通りカプセル化すればいいのですが、上記の図のcarを例に挙げます.このカプセル化された自動車では、カプセルごとに異なるcar機能と特性があります.オブジェクト向けプログラミングにおけるパッケージも同様の意味である.パッケージによって関連する機能と特性を1つの場所に集中して分類し、このパッケージはコードの再利用をよりスムーズにし、コードもそれほど複雑ではない.オブジェクト向けプログラミングでは,機能と特性の集合を分類して「クラス」という「カプセル」に入れるのがカプセル化である.1つのターゲットを組み合わせて、オブジェクトが果たす役割を実行します.
    *抽象
    不要な情報を隠し(隠匿化)、重要な情報のみを表現し、共通の属性や機能を組み合わせて名前を付ける.car(自動車)という対象を例にとると、内部にはエンジンから運転までに必要な多くの要素、すなわち自動車が現れる.しかし、私たちはこの多くの内部の存在を考えずに車を運転します.これが抽象画です.
    *継承
    これは親の属性と機能(特徴)をもたらす概念である.派生クラス(派生クラス)は、(ベースクラス)のフィーチャーを継承する場合に適した表現です.)上の写真を見てください.親クラス(car)のプロパティと機能を継承し、機能の一部を変更する必要がある場合は、継承されたサブクラスでのみ機能を変更して使用できることを覚えておいてください.
    *多形性(集約)
    1つのクラスや方法は様々な方法で動作することができ、「歩く」(method)という動作は辞書で「足で移動する」という意味です.しかし、異なる動物が「歩く時」にそれぞれの歩調を持つように、対象も同じ方法であっても、異なる方法で実現することができる.多形性にはオーバーロードがあります(親を継承する子クラスは親のメソッドではなく、子クラスで使用を再定義します).オーバーロードとオーバーロード(同じメソッド名で異なる入力を処理できます).

    2-2オブジェクト向けプログラミングの利点

  • のカプセル化と継承により、コードを再利用できます.
  • クラスを設計して使用するので、不要な時間を減らすことで生産性が向上します.
  • 以降に修正が必要な場合は、修正したいパッケージファイルを別途修正するだけでよいので、メンテナンスにメリットがあります.
  • 2-3オブジェクト向けプログラミングの欠点

  • は、大機能をどのように何らかの形式の構造にするかを考える必要があるため、設計チームから多くの時間がかかる.
  • パッケージから分離された構造のため、プログラム向けのプログラミングに比べて実行速度が遅い.
  • 3.Prototype


    3-1 Prototypeとは?


    Prototypeは歴史的に「原型」です.実際、JavaScriptのPrototypeも「プロトタイプ」の一般的な意味を超えていません.さらに説明するとjavascriptではPrototypeはそのオブジェクトを作成する「プロトタイプ」を表します.

    3-2ならJavaScriptでPrototypeを使うのはなぜですか?


    *一例を挙げる
    function Car() {
      this.wheels = 4;
    }
    let bmw  = new Car();
    let volkswagen = new Car();
    console.log(bmw.wheels);  // => 4
    console.log(volkswagen.wheels); // => 4
  • bmwとフォルクスワーゲンにはそれぞれ4つの車輪があり、ある場所に置いて、1回でいいので、メモリに2つ割り当てます.でも想像すると対象の数は1億個これにより、1億個の変数がメモリに割り当てられます.とても非効率なことが起こった.このときprototypeを使用します.
  • function Car() {}
    // prototype 사용
    Car.prototype.wheels = 4;
    let bmw  = new Car();
    let volkswagen = new Car():
    console.log(bmw.wheels); // => 4
    ...
    Car.prototypeという名前の空のオブジェクトはある場所に存在し、Car関数によって生成されたオブジェクト(bmw,volkswagen)はある場所に存在するオブジェクトのすべての値を取得することができる.
    すなわち,ある場所の空白に車輪を置き,bmwと大衆が共有して使用する.これにより、必要に応じて共有するwheelsを使えばよいので、メモリを消費することも少なくなります.

    参考資料


    Javascriptベース-オブジェクトプロトタイプについて
    [Javascript]プロトタイプについて
    JavaScriptミドルクラス#14継承、プロトタイプ