インタフェースと実装の分離
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/04/24 17:06 UTC 版)
「単体テスト」の記事における「インタフェースと実装の分離」の解説
あるクラスは 他のクラスを参照しているため、あるクラスのテストはしばしば別のクラスのテストに影響してしまう。この一般的な例は、データベースに依存しているクラスである。クラスをテストするために、テスターは、しばしばデータベースと対話するコードを書く。これは間違いである。なぜなら単体テストは自分のクラスの境界を超えるべきではないし、特にそのようなプロセス/ネットワーク境界を超えることは許されない。その理由は単体テストスイートで受け入れがたい性能問題が起こりうるからである。また、そのように単体テストの境界を超えることは統合テストになり、テストが失敗したときに、そのコンポーネントが失敗の原因かどうかが分からなくなってしまう。フェイク、モック、統合テストを参照のこと。 その代わりに、ソフトウェア開発者は、データベースクエリの周りに抽象的なインタフェースを作成し、専用のインタフェースを持つモックオブジェクトを実装する必要がある。この必要な付属物をコード(ネットで有効な結合)から抽象化し、独立したユニットは以前よりも徹底的にテストすることができる。この結果、高品質でかつ保守性があるユニットができあがる。
※この「インタフェースと実装の分離」の解説は、「単体テスト」の解説の一部です。
「インタフェースと実装の分離」を含む「単体テスト」の記事については、「単体テスト」の概要を参照ください。
インタフェースと実装の分離
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/10 06:42 UTC 版)
「抽象データ型」の記事における「インタフェースと実装の分離」の解説
プログラムが実装されたとき、抽象データ型は実装を隠蔽するインタフェースを表す。実装は将来において変更されうるので、抽象データ型のユーザーは実装ではなくインタフェースに関心がある。 抽象データ型の強みはユーザーから実装が隠蔽されていることである。インタフェースのみが公開されるのである。このことは、抽象データ型がいろいろな方法で実装されうることを意味するが、インタフェースに忠実な限りユーザープログラムは影響を受けないのである。 例えば、二分探索木抽象データ型はいくつかの方法で実装できる。例えば、二分木、AVL木、赤黒木、配列である。しかし実装に関わらず二分探索木は「挿入」「削除」「検索」といった同じ操作が可能である。
※この「インタフェースと実装の分離」の解説は、「抽象データ型」の解説の一部です。
「インタフェースと実装の分離」を含む「抽象データ型」の記事については、「抽象データ型」の概要を参照ください。
- インタフェースと実装の分離のページへのリンク