Help us understand the problem. What is going on with this article?

プログラムを書くときの注意点:その4

【概要】

1.結論
2.インターフェース分離の原則とは何か
3.なぜインターフェース分離の原則が必要か
4.インターフェース分離の原則はどう使うのか
5.ここから学んだこと

1.結論

インターフェース分離の原則にも従う!

2.インターフェース分離とは何か

●インターフェース分離とは、

”クライアントに、クライアントが利用しないメソッドへの依存を強制してはならない。”

一体どういうことかと言うと、


『利用しないメソッドは消しましょう!
さもないと関係のないメソッドに依存してしまい、
変更に影響がでちゃいますよ!』ということです。

3.なぜインターフェース分離の原則が必要か

結論としては、プログラミングを書く際の要は以下の
3つに集約されると思っています。

Ⅰ)保守性:修正(エラー発見のしやすさ)・管理のしやすさ
Ⅱ)拡張性:追加機能実装のしやすさ
Ⅲ)可読性:記述のわかりやすさ
が必要だと考えております。

ただこの分野に関しては余計な物は書かないということもありますので、
考え方は、プログラムに限ったお話ではないと思います。

つまり、上の3つを叶えるには
インターフェース分離に”も(他の4つの原則もあるので)”従う!!

4.インターフェース分離の原則はどう使うのか

こちらも例題で見ていきましょう!

インターフェース分離の原則
interface BBB
 void A();
 Void B();

class AAA implements interface名) BBB
 void A();
 void B();
    .
    .
    .

とあったときに、仮にvoid Aに変更があったときには
他のメソッド(classAAA)も見なくていけません。
また、修正の必要がなくても確認は必要なので
余計な作業が増えてしまいます。

上記は単純なのでまだ良いですが、
複雑であればあるほどこの手間は無限大です。

5.ここから学んだこと

i)以前に紹介した、”オープン・クローズドの原則”にも”interface”は使われるので相互に発揮される原則だなと感じました!

ii)最初は単純に余計な物を書かないことが大事と思いましたが、文字通りの意味だけでなく、”単一責任の原則”にもある役割別に分けることに繋がるなと思いました。例えば、PCであれば”動画”・”インカメラ”の役割別に分けることもそうですが、わざわざPCに”発電機機能”をつける必要はないということです。

taka_no_okapi
『笑謝を、自分らしく、続け、』 #100DaysOfCode #HTML #CSS #Javascript #Ruby 勉強中! プログラムまったくの未経験、0の状態から学習中! みなさんが同じところでつまずいた際に 少しでも共有できればと思い、作りました!
https://twitter.com/taka_no_okapi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした