0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SOLID原則について学習しましたのでアプトプットもかねて載せます。

SOLIDとは

オブジェクト指向プログラミングにおいて、柔軟性、保守性の高いソフトウェアを設計するための5つの原則の頭文字をとったマクロニム(略語)です。

5つの原則
1 単一責任の原則
2 オープンクローズドの原則
3 リスコフの置換原則
4 インターフェース分離の原則
5 依存性逆転の原則

今回は4 インターフェース分離の原則について説明します。

インターフェースの分離の原則とは(ISP)

インターフェースの分離の原則とはクライアントが必要としないメゾットを含まないようにインターフェースを設計するという原則です。


例としてファイルのアップデータを扱うためのアップロードを扱うためのインタフェースをUploaderInterfaceを考えます。

interface UploaderInterface
{
    public function upload(File $file);

    public function download(string $fileUrl);

    public function delete(string $fileUrl);
}

上記のインターフェースは、ファイルのアップロード、ダウンロード、削除の機能を含んでいます。しかし、実際のクライアントであるImageUploaderクラスはアップロードのみを使用するケースが多いかもしれません。この場合、クライアントは不要なダウンロードや削除のメソッドを実装しなければなりません。

↓ISP化

interface UploaderInterface
{
    public function upload(File $file);
}

interface DownloaderInterface
{
    public function download(string $fileUrl);
}

interface DeleterInterface
{
    public function delete(string $fileUrl);
}

ISPの原則により、クライアントはインターフェースが提供する機能に適切に合わせてクラスを設計することができ、必要な昨日だけを持つシンプルなインターフェースを実装することができます。
これにより、クライアントの要件に合わせた柔軟で効率的な設計ができます。

インターフェースの分離の原則については以上です。ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?