【Java】Interfaceが開発効率向上に絶対必要である理由
こんにちは、鬼畜メガネです。
今回は"JavaのInterfaceが開発効率に繋がり絶対必要な理由"というテーマについて書いていきます。
1. JavaのInterfaceとは"ルール・標準"である
JavaのInterfaceですが、googleで検索してみると「抽象クラスと何が違うの?」とかいう疑問が多くヒットしますね。
また、Interfaceの解説をしているwebページがあっても具体的なコードの書き方とか修飾子がどうとかばかりで、「だから結局何がメリットなの?」とイマイチ腹に落ちてこない説明も多いと思います。
これからは私の考えですが、見出しにも書きましたが、「JavaのInterfaceとは"ルール・標準"です」。具体的なソースの例は色々なサイトで書かれているので省略しますが、Interfaceは「このクラスは、メソッド A, B, C, ・・・を持ちます」というような"ルール・標準"を決めるものです。
"ルール・標準"が何の役に立つかは以下で説明します。
2. "ルール・標準"の重要性
ルールを設定したり標準化すると以下のメリットがあります。
・量産できる(コピペできる量が増える)
・だれでも作れる(難易度が下がる)
・品質が安定する
・見積もりの精度が上がる
標準化の重要性は"失敗の本質"という本にも書かれています。
・米国軍は戦闘機を標準化して量産可能でだれでも扱えるようにした。
・日本軍は一点豪華主義の戦闘機を少量作り、扱うには名人芸が必要だった。
このように標準化の考え方の欠如が日本人の敗戦理由の一つと考察してます。
詳細は以下リンクに記載してます、
learningforever.hatenablog.com
以下は私の過去の記事でも書いたのですが、実体験としてのメリットです。learningforever.hatenablog.com
(javaのInterfaceによるメリットとおう観点で抜粋)パターン化しているので仕様書作成も都度悩むことが無くとても楽でした。
プログラム作成もパターン化しているのでコピペを多用できて思考を節約できました。
テスト項目・方法がほとんど同じなので集中力を維持し続けてテストすることができました。
パターン化しているので見積もり楽に考えることができ精度が向上しました。
3. Interfaceは好まれない?
Interfaceについてgoogleで検索してみると、結構否定的な意見が出てきます。
「制約が増えるだけ」
「継承するなら親クラスで良い」
「結局コード量が増える」
こういった否定的な意見ですが、私の個人的な考え方ですが、上記で述べた"標準化の考え方の欠如"すなわち標準化やルールのメリットを知らないが故にでてくるものと思っています。
標準化やルールが日本人になぜ好まれないかは過去の記事として以下に書きました。
learningforever.hatenablog.com
ルールは"非効率な束縛"ではなく"方向性を示す道標"である
ルールについて日本人が取るべき3つの行動
・ルールの意味と目的を理解しておく
・ルールが実情に合わなくなったら変更を提案する
・ルールが必要ならルール作りを率先して行う
4. まとめ
・Interfaceはルール・標準である 。
・ルール・標準は全体最適で効率化につながる。
・ルール・標準の考え方を理解して受け入れよう。
以上、ありがとうございました。