★このページは書きかけです。
インタフェースは多態性の一種#
オブジェクト指向には- 多態性 (ポリモーフィズム:Polymorphism)
多態性とは、処理(関数またはメソッド)の定義(呼び出し名+型+引数)が同一であっても、処理内部の動きをクラスごとに替えられる機能のことです。
例えばJavaにおいては、
- abstractメソッド
- Interface (インタフェース)
- override(オーバーライド)
実体を並べてみないと多態性を定義できない#
多態性について注意すべき点は、設計時と実装時で視点を180度替える必要があることです。【設計時】#
- 実体(オブジェクト)を先に並べて比較する。
- 共通的な処理を抽出する。
- その処理を再定義する(呼び出し名、戻り値、引数を共通化する)。
- インタフェースの場合はインタフェース名を決める。
- クラス→インタフェース
【実装時】#
- 設計時に決めたインタフェースまたはabstractメソッドを実装する。
- それらを実現するためのクラスを実装する。
- インタフェース→クラス
設計者のほとんどは実装を先に経験するためだと思いますが、
- 多態性を利用する際は、まず最初に個別の実体(クラス)を並べてみて共通化する必要がある
視点を180度替える必要があるというのはこのことです。
インタフェースは役割#
責務はクラスではないの中で書いたように、- インタフェースは役割
- 自転車
- バイク
- 自動車
- 電車
- 飛行機
- 乗り物
少し考えてみれば判りますが、
- 「今日は乗り物を使って移動した。」
- 「何に乗ったの?」
- 「今日は電車で来た。」
- 役割では実体を決められない
- 責務でクラスは決まらない
添付ファイルの追加
ログイン済のユーザのみが添付ファイルをアップロード出来ます。
«
This particular version was published on 13-1-2012 00:05 by ytp.