【Java】新卒BtoBエンジニアに気をつけてほしい!無意識のうちにboxingしていない?
mokabuu
mokabuu.com
Javaを書くようになっても
なかなかInterfaceをゴリゴリ使う機会って少なかったりします。
いや、実際に使えるようになるとめちゃくちゃ使うのですが
そもそもInterfaceと言うものを知らなかったりするのではないでしょうか?
そこで今日はInterfaceがどれぐらい便利か
好みの女の子を表現しつつ説明したいと思います。
[adsense]
例えば以下のようなInterfaceを作ったとします。
1 2 3 4 5 6 7 | public interface Face { public String faceType(); public String hairLength(); public String hairColor(); public String lip(); public String eyes(); } |
これを作る事で
皆でこれを利用して好みの女性の顔のタイプについて話せます。
理想の女性を考えるときに顔だけで判断するだろうか?
きっと顔だけで女性を判断するほど君はゲスではないだろう!
スタイルも大事だよね☆
そこで下記もあわせて実装するわけです。
1 2 3 4 5 | public interface Style { public int height(); public int weight(); public ThreeSizeDto threeSize(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class ThreeSizeDto { private int bon; private int kyu; private int hip; public ThreeSizeDto( int bon, int kyu, int hip){ this .bon = bon; this .kyu = kyu; this .hip = hip; } public int getBon() { return bon; } public int getKyu() { return kyu; } public int getHip() { return hip; } } |
参考:【Java】頼むからDTOをしっかりと実装して欲しいお話
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | public class MokabuuIdealGirl implements Face, Style { public static final int myHeight = 170 ; @Override public int height() { int risou = myHeight - 15 ; return risou; } @Override public int weight() { // FIXME ここを実装すると世の中の女性に殺される return 0 ; } @Override public ThreeSizeDto threeSize() { // FIXME ここを実装すると世の中の女性に...ry return null ; } @Override public String faceType() { String risou = "童顔" ; return risou; } @Override public String hairLength() { String risou = "ロング" ; return risou; } @Override public String hairColor() { String risou = "あまり気にしない" ; return risou; } @Override public String lip() { String risou = "石原さとみ" ; return risou; } @Override public String eyes() { // FIXME ネタ切れ return null ; } } |
こんな感じでInterfaceが生きてくるわけであります。
extendsだと1つのみなのに対してinterfaceは複数いけるのも特徴ですね!
そしてこのInterfaceを1回定義しておく事で
友人からも好みの女性のタイプを聴き出そうとした際に
こんな具合で聴き出せるのです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | public class PepegonIdealGirl implements Face, Style { public static final int myHeight = 180 ; @Override public int height() { int risou = myHeight - 15 ; return risou; } @Override public int weight() { // FIXME ここを実装すると世の中の女性に殺される return 0 ; } @Override public ThreeSizeDto threeSize() { // FIXME ここを実装すると世の中の女性に...ry return null ; } @Override public String faceType() { String risou = "ちょっとキツめの綺麗系" ; return risou; } @Override public String hairLength() { String risou = "ロング" ; return risou; } @Override public String hairColor() { String risou = "明るい色" ; return risou; } @Override public String lip() { String risou = "薄め" ; return risou; } @Override public String eyes() { String eyes = "ちょっとキツい目つき" ; return eyes; } } |
Interfaceは「規格を統一するためのもの」なので
何か開発をする際はInterfaceをしっかりと考えてから
手を動かすと後々幸せになれます!!!
ちなみにMokabuuもPepegonも
実家で飼っているウサギの名前ですッ!
他意はありません(∀)