Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オブジェクト指向とモジュール性

Avatar for kanade kanade
October 02, 2020
120

 オブジェクト指向とモジュール性

Avatar for kanade

kanade

October 02, 2020
Tweet

Transcript

  1. ⽬次 1. 概要 2. テーマの動機 3. ⾃⼰紹介 4. ソフトウェアの品質の定義 5.

    オブジェクト指向でのモジュール性とは 6. モジュール性の 5 つの基準 7. モジュール性の 5 つの規則 8. モジュール性の 5 つの原則 2
  2. モジュール性の 5 つの規則 情報隠蔽 例)カーナビの経路検索機能 現在地や⽬的地の住所はユーザーが使うのでpublic な属性だけど、探 索アルゴリズムや渋滞情報などは内部の⼿続きなのでprivate な属性に なる。

    ユーザーが外部インターフェースのお作法を守っていれば、アルゴリ ズムや渋滞情報の取得⽅法が変わっても、private な属性なのでユーザ ーに影響を与えることはない。 34
  3. モジュール性の 5 つの原則 統⼀形式アクセスの原則 Ruby の場合 class Point def longitude

    @longitude end def longitude=(lon) @longitude = lon end end p = Point.new p.longitude = 135 puts p.longitude # 135 41
  4. モジュール性の 5 つの原則 開放・閉鎖の原則 オブジェクト指向ではない⼿法の場合 1. モジュールA を修正して、新しい要求に合う拡張されたモジュールA としてモジュールA’ を提供する。

    2. モジュールA をそのままにコピーを作って、新しいモジュールに必 要な変更を追加する。(モジュールA とモジュールA’ はもはや無関 係) 45
  5. モジュール性の 5 つの原則 開放・閉鎖の原則 1 の場合: A の変更がモジュールB やモジュールC へ影響、さらにモジュ

    ールB やモジュールC を使っているモジュールがあれば連鎖的に変更が 波及する。 2 の場合: 最悪 46
  6. モジュール性の 5 つの原則 開放・閉鎖の原則 A. 継承を⾏う モジュールA を継承してモジュールA’ を定義すれば、モジュールA を変

    更する必要がなくなる。 詳しく話すと時間があまりにも⾜りないので... 注)継承 = 開放・閉鎖の原則ではなく、あくまで⼀例です。 47